Rocky Linux 9 源码安装 MySQL
hi,我是温新,一名 PHPer
源码安装 MySQL 是一个漫长的过程。根据机器性能的不同,编译的时间也会不同。
我虚拟机中给系统的配置比较低,之前一般 2 小时左右就可以完成。但有的时候需要 5-6 个小时,源码安装 MySQL,时间这么久,图啥?
下面就开始安装吧。
注意:需要为系统至少 4G 内存。不然编译的过程中会报内存不够的错误。等 MySQL 安装完成之后,再把内存调小。
卸载 mariadb
# 查看是否自带数据
rpm -qa|grep mariadb
# 载自带数据库
dnf -y remove mariadb* boost-*
创建用户与组
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
# 创建mysql用户组
groupadd mysql
# 创建mysql用户并禁止登陆
useradd -g mysql mysql -M -s /sbin/nologin/
删除 my.cnf 配置文件
rm -rf /etc/my.cnf
rpm -qa | grep mysql
安装 mysql 8.1.0
cd /usr/local/src
下载与安装
# 下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.1.0.tar.gz
# 解压
tar -zxvf mysql-boost-8.1.0.tar.gz
cd mysql-8.1.0/
mkdir build
cd build
# 预编译
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/software/mysql-8.1.0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DSYSCONFDIR=/etc \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_DATADIR=/usr/local/software/mysql-8.1.0/data \
-DWITH_BOOST=/usr/local/src/mysql-8.1.0/boost \
-DDOWNLOAD_BOOST=1
# 安装
make && make install
修改所属用户与组
chown -R mysql:mysql /usr/local/software/mysql-8.1.0/
chmod -R 755 /usr/local/software/mysql-8.1.0/
初始化
cd /usr/local/software/mysql-8.1.0/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/software/mysql-8.1.0 --datadir=/usr/local/software/mysql-8.1.0/data --character-set-server=utf8
【若出现如下问题】
./mysqld: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
【解决方法】
dnf -y remove openssl-devel
dnf install -y compat-openssl11
然后,再次执行初始化操作。
# 初始化后生成的密码
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /EEZ5F0jS=oZ
安装 SSL
/usr/local/software/mysql-8.1.0/bin/mysql_ssl_rsa_setup
出现 WARNING: mysql_ssl_rsa_setup is deprecated and will be removed in a future version. Use the mysqld server instead.
可以不管。
启动 mysql
/usr/local/software/mysql-8.1.0/bin/mysqld_safe --user=mysql &
启动连接后,会阻塞着。此时,再开一个新窗口进行登陆 mysql。
连接 mysql
1)连接 mysql
# 输入初始化生成的密码
/usr/local/software/mysql-8.1.0/bin/mysql -uroot -p
2)修改密码
# 注意:生产环境千万不要修改成这么简单的密码
mysql> alter user 'root'@'localhost' identified by "123456";
3)添加远程登录用户
# 添加远程登陆用户
mysql> create user root@'%' identified by '123456';
# 为远程用户分配权限
mysql> grant all privileges on *.* to root@'%';
# 刷新权限
mysql> flush privileges;
# 查看当前用户,host为 % 的用户表示远程登陆用户
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| root | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
防火墙允许 3306
# 开启防火墙
systemctl start firewalld.service
# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 刷新
firewall-cmd --reload
# 关闭防火墙
systemctl stop firewalld.service
设置环境变量
vim /etc/profile
追加如下内容并保存退出
export PATH=$PATH:/usr/local/software/mysql-8.1.0/bin
刷新
# 刷新
source /etc/profile
设置开机自启
vim /usr/lib/systemd/system/mysql810.service
添加如下内容,保存并退出
[Unit]
Description=MySQL Server(8.0)
Documentation=main:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/software/mysql-8.1.10/bin/mysqld
LimitNOFILE=5000
设置开机自启
systemctl enable mysql810.service
相关操作(了解,这里不操作)
# 启动mysql服务
systemctl start mysql810.service
# 重启mysql服务
systemctl restart mysql810.service
# 查询mysql状态
systemctl status mysql810.service
# 取消开机自启
systemctl disable mysql810.service
请登录后再评论