1,准备工作
- 卸载系统自带mysql
查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载
1 | rpm -qa | grep mysql # 查看系统自带mysql |
- 卸载系统自带boost,并安装新版boost
mysql 5.7 依赖于boost_1_59_0或更高版本, 查看系统是否自带boost, 如果有就卸载了
1 | rpm -qa | grep boost # 查看系统自带boost |
- 安装依赖包
1 | yum install gcc gcc-c++ ncurses ncurses-devel cmake bison libgcrypt perl |
2,开始编译
- 下载源码并解压
1 | wget http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz |
- 编译及安装(全程请以root用户进行,以免错误)
- 以下编译命令挑几个需要的就行了,没必要全部使用
1 | cmake \ |
- 参数详解:
1 | -DCMAKE_INSTALL_PREFIX: MySQL安装的根目录 |
- 下面开始编译及安装(编译需时较长,我编译大概为1h,具体看配置)
1 | make |
3,配置MySQL
- 创建用户,组及各个目录,并赋予用户权限
注意:用户,目录路径要和配置文件相同
1 | cat /etc/group | grep mysql # 查看是否存在mysql用户组 |
- 开始设置MySQL的配置文件my.cnf
- 先把编译生成的/etc/my.cnf文件备份,然后把 《CentOS系统MySQL的配置文件my.cnf》 文中整理的MySQL的配置文件my.cnf上传到服务器的 /etc/ 目录下,再将配置文件中的以下路径改为你的安装目录和数据库目录即可。
basedir = /usr/local/mysql
datadir = /mydata/mysql/data
- 配置开机自启动
1 | cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld |
- 初始化MySQL自身的数据库
- MySQL 5.7 弃用mysql_install_db初始化,开始使用 mysqld
- 参数: –initialize-insecure不会生成密码,user表示用户,basedir表示mysql的安装路径,datadir表示数据库文件存放路径。
1 | /opt/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data |
- 启动MySQL服务
- 启动MySQL服务
1 | /opt/mysql/bin/mysqld_safe --user=mysql --datadir=/opt/mysql/data --log-error=/var/log/mysql/error.log |
- 查看MySQL服务是否启动
1 | ps -ef | grep mysql # 查看进程是否启动 |
4,初始化MySQL数据库root用户
- 执行 /opt/mysql/bin/mysql_secure_installation ,建议英语不好的同学准备好翻译 ,大致如下,具体自测
- A,首先让你选择用户密码策略:分成低级 LOW 、中等 MEDIUM 和超强 STRONG 三种,输入数字代号012以选择,选择完成输入密码回车后按 Y 确定即可
代号 | 策略 | 要求 |
---|---|---|
0 | LOW | 只需要长度大于或等于8 |
1 | MEDIUM | 除大于8外,还需要含数字、大小写和类似@#%等特殊字符 |
2 | STRONG | 前面所有还需要包含字典文件 |
- B,其次,移除测试相关
次数 | 翻译 | 操作 |
---|---|---|
第一次 | 移除 anonymous 用户 | y |
第二次 | 是否允许 root 远程登录 | n |
第三次 | 移除 test 数据库 | y |
第四次 | 刷新MySQL的系统权限相关表 | y |
5,创建其它MySQL数据库用户
- 例:创建一个名为 test 的MySQL用户(密码为Test@123.com)和一个名为 temp 的数据库。
1 | /opt/mysql/bin/mysql -uroot -p(MySQL的root用户密码) |
6,错误集锦
出现错误:ERROR! The server quit without updating PID file (/var/run/mysql/mysql.pid
- 解决方案:删除/opt/mysql/data目录下的所有文件,再重新初始化mysql数据库
未完待续。。。