MySQL 5.7编译安装
提示:下面的“#”不是命令的一部分,在输入命令的时候请忽略。
1、关闭SELinux并重启计算机
# vim /etc/selinux/config,然后找到SELINUX=enforcing,把enforcing改为permissive。接着保存并退出,然后重启电脑。
2、关闭防火墙
# service iptabels stop
3、安装必备的工具
# yum -y install gcc gcc-c++ make zlib openssl openssl-devel ncurses-devel cmake bison
4、下载boost库,这是MySQL 5.7必须的库,目前版本要求是1.59.0版本
将下载好的boost_1_59_0.tar上传到你的工作目录,我上传的目录是/root中。你可以使用pwd命令查看当前的路径。
5、解压boost_1_59_0.tar到/tmp目录。
# tar -xvzf boost_1_59_0.tar.gz && mv boost_1_59_0 /tmp
6、下载MySQL 5.7源码包并解压到工作目录
# tar -xvzf mysql-5.7.17.tar.gz && rm -f mysql-5.7.17.tar.gz && cd mysql-5.7.17
7、创建一些必要的用户、组和目录
# groupadd mysql
# useradd -g mysql mysql
# mkdir -p /usr/local/mysql/data && chown -R mysql:mysql /usr/local/mysql/data
8、现在你是处于mysql-5.7.17目录中,执行安装前环境检测,注意以下是一条命令而不是多条
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_BOOST=/tmp/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
环境执行完请检查屏幕输出的最后5行左右是否有error字样,如果有请不要继续后面的步骤。
9、进行编译
# make
环境执行完请检查屏幕输出的最后5行左右是否有error字样,如果有请不要继续后面的步骤。
10、安装
# make install
到这里请关机,然后给虚拟机打个快照
11、配置mysql启动脚本
请使用pwd确保当前还是在mysql-5.7.17目录中
# cp ./support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld && chkconfig mysqld on
12、修改配置文件
# vim /etc/my.cnf
修改成下面的样子
13、初始化mysql
# cd /usr/local/mysql
# ./bin/mysqld --initialize --user=mysql TVu/GQkiR1#u
这里会输出以下内容,请注意看,这里有一个root的随机初始化密码,需要先记下来
这里的随机密码就是:CP!ER+=v)63w
14、修复权限
# chown -R mysql:mysql /usr/local/mysql/data
15、配置环境变量
# vim ~/.bashrc
在文件末尾加入以下代码并保存
让环境变量立即生效
# source ~/.bashrc
16、启动mysqld服务
# service mysqld restart
可以通过netstat -tulnp | grep mysqld查看监听的端口
17、进入mysql
# mysql -u root -p
然后输入密码CP!ER+=v)63w
18、修改user@localhost用户的密码
ALTER USER root@localhost identified by '123456';
这个是修改本地的root用户的密码,之后就不用那个随机密码,太难输入了。
19、创建用户并授予远程访问
CREATE USER root@'%' (注意这里没有分号,因为还要继续输入,可以回车的)
IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
到此安装结束...