## 1、下载MySQL源代码 ![](https://i.vgy.me/sa9xRF.png) >[success] 下载地址:[https://dev.mysql.com/downloads/mysql/5.7.html#downloads](https://dev.mysql.com/downloads/mysql/5.7.html#downloads),下载到自己存放的目录当中 ``` tar -zxf mysql-5.7.26.tar.gz cd mysql-5.7.26 ``` ## 2、安装依赖 ``` sudo apt install make cmake gcc g++ perl bison libaio-dev libncurses5 libncurses5-dev libnuma-dev ``` >[success] 安装好这些依赖后,如果在编译的时候还有提示依赖错误的,不要慌!谷歌一个一个慢慢来! ## 3、检测安装环境 ``` cmake . ``` >[danger] 提示-- MySQL currently requires boost\_1\_59\_0 > 现阶段sudo apt install libboost-all-dev安装的版本为58,因此需要手动安装boost\_1\_59 > 下载boost\_1\_59\_0源代码 > 地址:[https://sourceforge.net/projects/boost/files/boost/1.59.0/boost\_1\_59\_0.tar.gz](https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz) > tar xzvf boost\_1\_59\_0.tar.gz > cd boost\_1\_59\_0 > sudo ./bootstrap.sh > sudo ./b2 install > 不管怎么说,这个安装了准没错 ## 4、开始编译 ``` cd mysql-5.7.26 ``` ``` cmake . -DBUILD_CONFIG=mysql_release -DCPACK_MONOLITHIC_INSTALL=ON -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQLX_TCP_PORT=33060 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DMYSQLX_UNIX_ADDR=/usr/local/mysql/mysqlx.sock -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DENABLE_DOWNLOADS=ON -DWITH_BOOST=system ``` ``` sudo make sudo make install ``` ## 5、初始化 ### 创建mysql组跟用户 ``` sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` ### 更改mysql目录权限 ``` cd /usr/local/mysql sudo chown -R mysql . sudo chgrp -R mysql . ``` ### 初始化mysql,生成root用户的临时密码,如:root@localhost: Cgs<1\*gDP=i9 ``` sudo bin/mysqld --initialize --user=mysql ``` ### 开启SSL功能 ``` sudo bin/mysql_ssl_rsa_setup ``` ### 更改mysql目录权限 ``` sudo chown -R mysql . sudo chgrp -R mysql . ``` ### 测试启动mysql ``` sudo bin/mysqld_safe --user=mysql ``` ### 启动mysql,输入临时密码后更改密码,停止mysql ``` sudo support-files/mysql.server start sudo bin/mysql -u root -p alter user 'root'@'localhost' identified by 'root'; sudo support-files/mysql.server stop ``` ### 将mysql服务放置init.d目录下 ``` sudo cp support-files/mysql.server /etc/init.d/mysql.server ``` ### service控制mysql服务 ``` service mysql.server start|stop|restart|reload|force-reload|status ``` ![](https://i.vgy.me/mbHIC0.png) >[danger] 途中有什么问题,谷歌与百度一一解决搞定!另外啊,MySQL配置my.cnf 在MySQL5.7.1之后没有默认了,它不需要依赖my.cnf来启动,可以 mysql --verbose --help |grep -A 1 'Default options' 来查看默认使用的my.cnf ``` 读取顺序:/etc/my.cnf > /etc/mysql/my.cnf > /usr/etc/my.cnf > ~/.my.cnf ```