mysql 5.7源码安装

  • Post author:
  • Post category:mysql




一、下载以及准备

mysql 下载:

mysql地址

.

在这里插入图片描述

两个文件都要下载。

#以下环境为centos7为例安装,其他的Linux需根据自身的命令安装  
#安装cmake
yum install cmake –y
#ssl开发环境   有的可不装
yum install openssl-devel
yum install ncurses-devel
yum install gcc gcc-c++
#以上的环境安装不唯一  请根据预编译中的报错在确定您缺少什么环境


#创建组
groupadd mysql
#创建用户
useradd -r -g mysql -s /bin/false mysql (-r:系统用户,-g:组,-s:指定shell)



二、编译安装

#预编译 
#如果cmake失败 请 rm -rf CMakeCache.txt  失败请谷歌,不同环境报错不同
cmake . \
-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

参数收集:
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data  \   #数据文件存放位置
# -DSYSCONFDIR=/etc  \  					 #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \  		 #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \	     #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1  \  		 #支持Memory引擎
# -DWITH_READLINE=1  \  					 #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \       #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306  \				     #端口
# -DENABLED_LOCAL_INFILE=1 \  				 #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1  \ 	     #安装支持数据库分区
# -DEXTRA_CHARSETS=all \   					 #安装所有的字符集
# -DDEFAULT_CHARSET=utf8  \  				 #默认字符


#编译安装 
make -j `grep processor /proc/cpuinfo | wc -l`
# -j参数表示根据CPU核数指定编译时的线程数,可以加快编译速度。默认为1个线程编译,经测试单核CPU,1G的内存,编译完需要将近1个小时。
make install 



三、初始化启动

cd /usr/local/mysql

mkdir mysql-files
chown -R mysql.mysql  /usr/local/mysql

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#------------------------------------------------------------
#可能会报错 报错
2020-12-15T07:01:35.256967Z 0 [ERROR] COLLATION 'utf8mb4_general_ci' is not valid for CHARACTER SET 'latin1'
2020-12-15T07:01:35.256992Z 0 [ERROR] Aborting
#字符集问题
#在/etc/my.cnf #添加
[client]
default-character-set = utf8
[mysqld]
character_set_server = utf8
#-----------------------------------------------------------
#初始化成功后 会出现冒号后面时临时密码
# A temporary password is generated for root@localhost: o4Wdh?MjtLXN
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data


#最终我的my.cnf 文件
[root@mysql1 mysql] vim /etc/my.cnf

[client]
default-character-set = utf8
[mysqld]
character_set_server = utf8
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

开机启动

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

service mysqld start #启动
#报错
Starting MySQL.2020-12-15T07:14:37.450082Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
#我是因为没有文件夹
mkdir -p /var/lib/mysql

#在启动
service mysqld start

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

#修改密码 中间看似乱码的东西时上面的临时密码    不改也行
mysqladmin -h127.0.0.1  -uroot -p'o4Wdh?MjtLXN' password '123456'

#登陆
mysql -uroot -p123456
#后输入上面的临时密码



四、停止重启

#停止
service mysqld stop
#重启
service mysqld restart 



版权声明:本文为KillerXie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。