一、清理安装环境以及安装软件包及编译工具
[root@localhost ~]# userdel -r mysql
[root@localhost ~]# rm -rf /etc/my*
[root@localhost ~]# rm -rf /var/lib/mysql
[root@localhost ~]# yum -y erase mariadb mariadb-server mariadb-libs mariadb-devel
[root@localhost ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
[root@localhost ~]# yum -y install cmake
二、创建MySQL用户
[root@localhost ~]# useradd -r mysql -M -s /bin/false
# -M 不创建用户的家目录
# -s 指定一个不能登录的 shell
三、获取安装包
wget 官网得到的地址 或者下载到本地然后上传到服务器
此处我使用 wget
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
四、创建MySQL目录
[root@localhost ~]# mkdir -p /usr/local/{data,mysql,log}
五、解压
[root@localhost ~]# tar -xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
注:如果安装的MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的
安装才可以正常运行。否则会报CMake Error at cmake/boost.cmake:81错误
安装包里面自带boost包
六、编译安装
# cd 到MySQL的安装目录
[root@localhost ~]# cd /usr/local/mysql-5.7.27/
[root@localhost mysql-5.7.27]# cmake . \
-DWITH_BOOST=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
提示:boost也可以使用如下指令自动下载,如果不下载bost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
[root@localhost mysql-5.7.27]# make && make install
如果安装出错,想重新安装:
不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
注:需要很长时间
参数详解
-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 # 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 # 默认的存储引擎,支持外键
七、初始化
[root@localhost mysql-5.7.27]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql.mysql
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码
初始化,只需要初始化一次
[root@localhost mysql]# vim /etc/my.cnf # 添加如下内容
[mysqld]
basedir=/usr/local/mysql #指定安装目录
datadir=/usr/local/mysql/data #指定数据存放目录
八、添加环境变量
[root@localhost mysql]# vim /etc/profile # 添加如下
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
[root@localhost mysql]# source /etc/profile
之后就可以在任何地方使用 mysql 命令登陆Mysql服务器
九、启动MySQL
[root@localhost mysql]# systemctl start mysql
十、登录mysql
[root@localhost mysql]# mysql -uroot -p'GP9TKGgY9i/8'
十一、修改密码
第一种
[root@localhost mysql]# mysql-u root -p'GP9TKGgY9i/8'
mysql> alter user 'root'@'localhost' identified by 'ChenChao@123';
第二种
[root@localhost mysql]# mysqladmin -u root -p'GP9TKGgY9i/8' password 'ChenChao@123'
十二、配置mysqld服务的管理工具
[root@localhost mysql]# cd /usr/local/mysql/support-files/
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
[root@localhost support-files]# chkconfig --add mysqld
[root@localhost support-files]# chkconfig mysqld on
先将原来的进程杀掉
[root@localhost ~]# /etc/init.d/mysqld
startStarting MySQL. SUCCESS!
[root@localhost ~]# netstat -lntp
查看3306端口mysqld是否启用
[root@localhostr ~]# /etc/init.d/mysqld stop