MySQL最新源代码下载地址:https://dev.mysql.com/downloads/mysql/
废话不多说,接下来开始了
以下操作均在root用户模式下进行,“#”之后为注释内容
(1)cmake编译工具:早在MySQL 5.* 的时候,MySQL源码就开始使用cmake进行编译了,在安装源码之前我们先安装上cmake
apt install cmake
(2)ncurses库:这个库是必须的,安装命令如下
apt install libncurses-dev
(3) Boost C++ 库:MySQL8.0.15需要依赖boost_1_68_0,不过我在写这个文档的时候,在Ubuntu 16.04中却只有boost_1_58,所以我们需要进入boost官网直接下载压缩包,然后解压到系统目录中,在编译过过程中指定boost目录即可。以下链接作为参考
官网链接:https://www.boost.org/
boost_1_68_0下载链接:https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
下载boost_1_68_0压缩包之后,我们直接将其解压到系统目录中,如下命令:
tar -zxvf boost_1_68_0.tar.gz #解压安装包
mv boost_1_68_0 /usr/local/ #把boost文件目录移动到系统目录
(1)根据官网文档,我们在编译MySQL 8.0.15源码之前。执行以下命令,添加名为“mysql”的用户
groupadd mysql #添加用户组
useradd -r -g mysql -s /bin/false mysql #添加用户
(2)解压源码包
tar -zxvf mysql-8.0.15.tar.gz #解压源码包
cd mysql-8.0.15 #进入源码目录
mkdir bld #新建一个用于保存编译中间文件的临时目录
cd bld #进入临时目录
(3)配置编译参数
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=/usr/local/boost_1_68_0/
cmake命令执行之后会构建出编译参数文件,如下参数说明:
…:两个点代表编译上一级目录,因为bld临时目录是在源码目录之下的一个目录,而我们需要指向源码目录
-DCMAKE_INSTALL_PREFIX:指定mysql的安装位置,如果这个参数不指定的话,默认就是/usr/local/mysql
-DWITH_BOOST:指定boost_1_68_0的安装目录,对应1(3)
(4)结果分析
a.通过:如果配置没有错误,你会看到“Configuring done”等的提示,如下图,你可执行下一步的编译与安装。
b.不通过:如果出错了,那肯定是你的操作不对了。此时你好好分析错误提示,同时需要删除当前bld临时目录下面cmake命令执行之后产生的所有文件,细心一点,根据文档教程重来一遍。
(1)编译:
make
(2)安装:
make install
安装时间比较长,可能需要等好几十分钟,主要取决与你电脑的速度。
(3)初始化:
安装完成之后,根据官方文档,我们需要执行以下命令:
cd /usr/local/mysql #进入安装目录
mkdir mysql-files #创建目录
chown mysql:mysql mysql-files #修改目录所有者
chmod 750 mysql-files #修改目录权限
bin/mysqld --initialize --user=mysql #初始化mysql,此时会为'root'@'localhost'用户生成一个临时密码,我们需要记住
bin/mysql_ssl_rsa_setup #执行ssl_rsa初始化命令
将服务脚本复制到系统中,当然了,这是可选的,命令如下
cp support-files/mysql.server /etc/init.d/mysql.server
完成以上操作,就可以开启服务了,命令如下
bin/mysqld_safe --user=mysql &
登录到MySQL数据库
bin\mysql -u root -p
连接数据库之后,使用以下命令修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
在MySQL 8.0系列中,默认的身份验证插件已将 mysql_native_password更改为 caching_sha2_password,并且在 ‘root’@'localhost’管理帐户中默认使用caching_sha2_password验证方式。
以现在的情况来说,默认情况下很多开源程序如wordpress、typecho是不可以直接连接的,所以使用MySQL8.0数据库,你可以更改默认验证方式,你还可以新建一个专门用于你项目开发的一个数据库账号,并使用mysql_native_password验证方式。
(1)以下方法可更改root用户的验证方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
(2)默认情况下MySQL 8.0使用第三方工具默认也是不能连接的,如果有需要,你需要更改一下密码的加密方式:
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
(3)如果你想同时更改密码验证方式和加密方式,可以直接使用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码' PASSWORD EXPIRE NEVER;
到这里就算安装成功了,感谢你的阅读
此博客参考MySQL官方文档https://dev.mysql.com/doc/