代码改变世界

mysql-5.7.25 源码 安装

2019-04-03 16:27  brookin  阅读(311)  评论(0编辑  收藏  举报

mysql-5.7.25 源码 安装

编译

export INSTALL_PREFIX="/data/services"
export MYSQL_INSTALL_PATH="${INSTALL_PREFIX}/mysql-5.7.25"

tar -zxf mysql-5.7.25.tar.gz
cd mysql-5.7.25
mkdir compile_dir  // 避免污染源码
cd compile_dir

cmake .. \
-DCMAKE_INSTALL_PREFIX:PATH=${MYSQL_INSTALL_PATH} \
-DSYSCONFDIR=${MYSQL_INSTALL_PATH}/etc \
-DMYSQLX_UNIX_ADDR=${MYSQL_INSTALL_PATH}/tmp/mysqlx.sock \
-DMYSQL_UNIX_ADDR=${MYSQL_INSTALL_PATH}/tmp/mysql.sock \
-DSYSTEMD_PID_DIR=${MYSQL_INSTALL_PATH}/var/run/mysqld \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=yes \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_BOOST=${INSTALL_PREFIX}/boost_1_59_0

另外一些配置项

-DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" \
-DWITH_EDITLINE=bundled \

配置

以下操作都是 root 身份

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

mkdir -p /data/services/mysql-5.7.25/etc
mkdir -p /data/services/mysql-5.7.25/tmp
mkdir -p /data/services/mysql-5.7.25/data

touch /data/services/mysql-5.7.25/etc/my.cnf
touch /data/services/mysql-5.7.25/etc/mysql.log

chown -R mysql:mysql /data/services/mysql-5.7.25/

修改 my.cnf

[mysqld]
basedir = /data/services/mysql-5.7.25
datadir = /data/services/mysql-5.7.25/data
bind-address = 10.0.0.2
port = 3306
user = mysql
#server_id = 92
socket = /data/services/mysql-5.7.25/tmp/mysql.sock

[mysqld_safe]
log-error = /data/services/mysql-5.7.25/tmp/mysql.log
pid-file = /data/services/mysql-5.7.25/tmp/mysql.pid

初始化

./bin/mysqld --initialize --user=mysql

2019-04-03T06:46:37.665900Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-03T06:46:38.075279Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-03T06:46:38.134274Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-03T06:46:38.190177Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 3af65f7b-55dc-11e9-adb0-b496913174e8.
2019-04-03T06:46:38.190498Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-03T06:46:38.646217Z 0 [Warning] CA certificate ca.pem is self signed.
2019-04-03T06:46:38.690755Z 1 [Note] A temporary password is generated for root@localhost: axb2A2gj8Edf

启动

cp ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

修改 vi /etc/init.d/mysqld

basedir=xxx
datadir=xxx

chkconfig mysqld on
service mysqld start

连接 & 修改密码

./bin/mysql -uroot -p

alter user 'root'@'localhost' identified by 'root123';

注意

5.7 开始初始化密码,有密码强度校验,validate_password_policy 有以下取值:

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:

set global validate_password_policy=0;
set global validate_password_length=1;