第一步:下载源码(这里下的是 boost 版本)
如下图访问MySQL官网下载对应版本的mysql8.0.22源码
第二步:编译安装
(一). 放到需要的目录
(二). 解压(银河麒麟的可视化界面对解压操作还是很友好的)
(三). 安装
1. 找到的安装方案需要依赖openldap,而安装openldap前提是已经安装好openssl和BerkeleyDB,所以需要先从这里开始
(1). 安装openssl(这个虽然系统自带,但是最好不要卸载,重新安装一个,卸载之后很多服务可能起不来)
访问OpenSSL官网下载所需版本,如下图所示这里用的是1.1.1版本
tar -zxvf + 压缩包名
cd + 解压后的文件名
(注意在makefile文件中把库的位置由lib64改为lib)
./configure prefix=/usr/local/openssl1.1.1
make
make install
(2). 安装BerkeleyDB
访问Berkeley DB官网下载所需版本,如下图所示这里用的是5.3.28.NC
tar -zxvf + 压缩包名
cd + 解压后的文件名
cd build_unix
../dist/configure --enable-cxx #其中–enable-cxx就是编译C++库,这样才能编译Berkeley DB数据库的PHP扩展php_db4。
make
make install
(3).安装OpenLDAP
访问OpenLDAP下载所需版本,如下图所示这里用的是2.4.44
tar -zxvf + 压缩包名
cd + 解压得到的文件名
./configure --prefix=/usr/local/openldap-2.4.44 --enable-syslog --enable-modules --enable-debug --with-tls=openssl CPPFLAGS=-I/usr/local/BerkeleyDB.5.3/include/ LDFLAGS=-L/usr/local/BerkeleyDB.5.3/lib/
make depend
make -j8
make install
2. 安装MySQL8.0.22(终于进入正题)
(1).接入解压后的目录创建 build 文件夹
(2).进入 build 文件夹执行以下命令
cmake ../ -DWITH_BOOST=../boost -DWITH_SSL=/usr/local/openssl1.1.1 -DWITH_LDAP=/usr/local/openldap-2.4.44
make -j8
make install
安装完成
第三步:添加用户
groupadd mysql
useradd -g mysql mysql
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
第四步:初始化
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
这一步成功的话,在最后会打印输出随机生成的root账号初始密码,一定要记下来后面会用到。
第五步:配置
(一). 配置my.cnf
vim /etc/my.cnf
然后写入以下内容
[client]
socket = /tmp/mysql.sock
[mysqld]
lower_case_table_names = 1
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
!注意lower_case_table_names = 1
是MySQL8设置表名大小写不敏感的,一定要在初始化完第一次配置的时候就加上,如果不加后面启动程序可能会由于表名导致报错Table 'XXX' doesn't exist
,那时候再加会导致MySQL重启失败提示其他错误,经过尝试,只有在安装完成之后,第一次启动数据库之前,修改my.cnf,然后再启动数据库才有效
(二). 配置启动项
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
sudo update-rc.d mysqld defaults
service mysqld start
(三). 添加环境变量
sudo vim /etc/profile
最下面部分添加
export PATH=/usr/local/mysql/bin:$PATH
最后使之生效
source /etc/profile
第六步:开启远程连接(可选)
mysql -u root -p
回车后会提示password:
,输入刚才第四步完成后得到的初始化密码访问MySQL
(一). 先查看用户及对应的host
use mysql;
select user,host from user;
查看root用户对应的是localhost还是%,为下一步做准备
(二). 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
(三). 如果第一步host值是localhost,则修改为%,表示所有IP都有连接权限(为了省事)
update user set host = '%' where user = 'root';
(四). 测试使用新密码登录mysql
第七步:管理
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
大功告成。