参考MySQL源码安装操作文档
https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
![](https://img-blog.csdnimg.cn/img_convert/524bfa2384d74110ad3eab92fa220966.png)
![](https://img-blog.csdnimg.cn/img_convert/c0e6b722967d4d7e95ec0216c41b748c.png)
![](https://img-blog.csdnimg.cn/img_convert/fb4a08da9c8446fd9222f1415b849f6a.png)
建议源码编译安装之前先拍快照
第一步:安装MySQL需要的依赖库
yum -y install cmake libaio-devel oppenssl-devel ncurses-devel
第二步上传软件到服务器端并解压
tar -xf 压缩包 或tar -xzf 压缩包
第三步:编写脚本文件进行配置(不容易出错)
#vim myconfig.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/ mysq1_3307 \
-DMYSQL_DATADIR=/mysq1_3307/data \
-DMYSQL_ TCP_PORT=3307 \
-DMYSQL__UNIX_ADDR=/mysql_3307/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_BOOST=boost
没有安装boost库的需要下面两行
-DWITH_BOOST=/mysq1_3307/ boost \
-DDOWNLOAD_B0OST=1(如果已经下载好,则不用再次下载=0,或者直接不写)
只有mysql_3307需要修改,其他的直接复制粘贴(配置选项可以参考上面的表)
wq保存之后
chmod +x myconfig.sh
./myconfig.sh
第四步:编译安装
make -j2 && make install //-j2:表示同时开启多个线程共同编译
常见配置错误
![](https://img-blog.csdnimg.cn/img_convert/b0f12e29d68a4476a6b52ed1b2813619.png)
如果中途编译报错只能删掉CmakeCache.txt文件重新编译
rm -f CmakeCache.txt
make -j2 && make install
MySQL数据库的初始化
注意,必须进去安装目录里面
cd /mysql_3307
第一步:创建mysql-files目录
mkdir mysql-files
chown -R mysql:mysql /mysql_3307
chmod 750 mysql-files
第二步数据库初始化操作
bin/mysqld --initialiaze --user=mysql --basedir=/mysql_3307
--datadir=/mysql_3307/data
记住保存数据库随机密码
第三步:拷贝mysql.server脚本到/etc/init.d目录,然后启动数据库
cp support-files/mysql.server /etc/init.d/mysql_3307 //mysql_3307可随意指定
chown -R mysql.mysql /mysql_3307
service mysql_3307 start
netstat -nltp |grep mysqld //查看端口号
![](https://img-blog.csdnimg.cn/img_convert/613d63ae18b542feaadf6980e5da88fd.png)
MySQL数据库安装完成后的配置
第一步:编写MySQL配置文件,my.cnf
#vim /mysql_3307/my.cnf
[mysqld]
basedir=/mysql_3307
datadir=/mysql_3307/data
socket=/mysql_3307/mysql.sock
#service mysql_3307 restart //重新启动数据库配置才能生效
第二步:设置数据库root密码
bin/mysqladmin -uroot password '123' -p
输入保存的随机密码
第三步:安全设置
bin/mysql_secure_installation
第四步:设置开机启动项
chkconfig --add mysql_3307 //添加mysql_3307为开机启动项
chkconfig mysql_3307 on //on设置开机自启
常见问题1:如何访问同一台服务器上的不同数据库
可以直接分别访问不同目录(/mysql3306/bin/mysql -uroot -p或者/mysql3307/bin/mysql-uroot -p)
拷贝相应的命令到环境变量PATH目录下
cp /mysql_3306/bin/mysql /usr/bin/mysql_3306
cp /mysql_3307/bin/mysql /usr/bin/mysql_3307
常见问题2:忘记数据库root密码怎么办?
跳过授权表重启数据库
第一步:关闭数据库mysqladmin
mysqladmin shutdown -p
不用输密码,因为忘记了,直接回车
第二步:跳过授权表启动并刷新授权表(重要)
#/mysql_3306/bin/mysqld --defaults-file=/mysql_3306/my.cnf --skip-grant-tables --skip-networking=on --user=mysql &
稍等一下,注意看报错,然后回车
#mysql -uroot -p
什么都不用输入
mysql>flush privileges; //刷新
第三步:修改数据库root密码
mysql>alter user 'root'@'localhost' identified by '123';
如果失败则用下面的语句
mysql> UPDATE mysq1.user SET authentication_string = PASSWORD( 'MyNewPass')WHERE User = 'root’AND Host = 'localhost ';
mysql> FLUSH PRIVILEGES;
第四步:修改完成后查看mysqld进程并重启
jobs
kill %1
service mysql_3306 start