MySQL 8.0.16定制路径安装
1、安装
安装的是社区版8.0.16 ,解压缩后按顺序安装即可。
安装顺序如下:
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-common-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-common-8.0.16-2.e################################# [100%]
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-embedded-compat-8################################# [100%]
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
mysql-community-libs(x86-64) >= 8.0.11 被 mysql-community-libs-compat-8.0.16-2.el7.x86_64 需要
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-libs-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-libs-8.0.16-2.el7################################# [100%]
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
软件包 mysql-community-libs-compat-8.0.16-2.el7.x86_64 已经安装
[root@mysql install_mysql_8.0.16]#
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-devel-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-devel-8.0.16-2.el################################# [100%]
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-client-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-client-8.0.16-2.e################################# [100%]
[root@mysql install_mysql_8.0.16]# rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
警告:mysql-community-server-8.0.16-2.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql-community-server-8.0.16-2.e################################# [100%]
重要:
启动mysql服务 systemctl start mysqld
查看启动状态 systemctl status mysqld
关闭数据库 systemctl stop mysqld
只有第一次启动数据库后,/var/mysql目录下才生成数据库文件。
2、调整默认安装路径
(1)修改配置文件/etc/my.cnf
原来的目录是 /var/lib/mysql ,调整到/data/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
log-error=/data/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
(2)移动安装目录
cp -R /var/lib/mysql /data
chown -R mysql:mysql /data/mysql
注意:
需要在mysql目录下建立log目录,注意权限重置一下。
mkdir log
chown -R mysql:mysql /data/mysql
否则报错:
Feb 10 15:15:23 oracledb mysqld[12777]: 2023-02-10T07:15:23.117353Z 0
[ERROR] [MY-010187] [Server] Could not open file '/h… denied
[root@oracledb home]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2023-02-10 15:15:23 CST; 9s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 12777 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
Process: 12704 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 12777 (code=exited, status=1/FAILURE)
Status: "SERVER_BOOTING"
Error: 13 (Permission denied)
Feb 10 15:15:22 oracledb systemd[1]: Starting MySQL Server...
Feb 10 15:15:23 oracledb mysqld[12777]: 2023-02-10T07:15:23.116175Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysq...s 12777
Feb 10 15:15:23 oracledb mysqld[12777]: 2023-02-10T07:15:23.117353Z 0 [ERROR] [MY-010187] [Server] Could not open file '/h... denied
Feb 10 15:15:23 oracledb mysqld[12777]: 2023-02-10T07:15:23.117418Z 0 [ERROR] [MY-010119] [Server] Aborting
Feb 10 15:15:23 oracledb mysqld[12777]: 2023-02-10T07:15:23.117567Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shut... - GPL.
Feb 10 15:15:23 oracledb systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
Feb 10 15:15:23 oracledb systemd[1]: Failed to start MySQL Server.
Feb 10 15:15:23 oracledb systemd[1]: Unit mysqld.service entered failed state.
Feb 10 15:15:23 oracledb systemd[1]: mysqld.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
(3)启动数据库
启动mysql服务 systemctl start mysqld
查看启动状态 systemctl status mysqld
[root@mysql install_mysql_8.0.16]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2022-07-21 11:02:34 CST; 34min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 19379 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 19406 (mysqld)
Status: "SERVER_OPERATING"
Tasks: 39
CGroup: /system.slice/mysqld.service
└─19406 /usr/sbin/mysqld
7月 21 11:02:32 mysql systemd[1]: Starting MySQL Server...
7月 21 11:02:34 mysql systemd[1]: Started MySQL Server.
3、登录的问题
找到安装的默认密码:
#cat /var/log/mysqld.log | grep 'temporary password is generated'
2022-07-21T02:03:10.026467Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: koMU(a#dy8%?
郁闷的部分来了,用命令行登录:
[root@mysql mysql]# mysql -uroot -pkoMU(a#dy8%?
-bash: 未预期的符号 `(' 附近有语法错误
有个(无法处理,只能输入密码:
[root@mysql mysql]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
提示:ERROR 2002 (HY000)错。
默认的安装路径被我删除了/var/lib/mysql/ 。
网上的解决办法,在my.cnf中增加client配置项:
[client]
port=3306
socket=/data/mysql/mysql.sock
停止mysql服务,重新启动后,用输入密码的方式,终于可以登录。
密码中有() ,特殊字符,只能用手工输入密码的方式首次登陆数据库。
[root@mysql mysql]# mysql -uroot -p
Enter password:
4、用户密码设置
设置密码,授权可以远程连接
mysql> alter user 'root'@'localhost' identified by 'MySQL#2022';
Query OK, 0 rows affected (0.11 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.07 sec)
mysql> quit
5、卸载
[root@mysql mysql]# systemctl stop mysqld
[root@mysql mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: inactive (dead) since 四 2022-07-21 09:10:09 CST; 9min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 8941 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 8842 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 8941 (code=exited, status=0/SUCCESS)
Status: "SERVER_SHUTTING_DOWN"
7月 21 08:24:01 mysql systemd[1]: Starting MySQL Server...
7月 21 08:24:11 mysql systemd[1]: Started MySQL Server.
7月 21 09:10:05 mysql systemd[1]: Stopping MySQL Server...
7月 21 09:10:09 mysql systemd[1]: Stopped MySQL Server.
[root@mysql mysql]# rpm -qa | grep -i mysql
mysql-community-embedded-compat-8.0.16-2.el7.x86_64
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-libs-compat-8.0.16-2.el7.x86_64
mysql-community-client-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
mysql-community-server-8.0.16-2.el7.x86_64
卸载上述查询出来的所有的 MySQL 安装包
rpm -e mysql-community-embedded-compat --nodeps
rpm -e mysql-community-libs --nodeps
rpm -e mysql-community-client --nodeps
rpm -e mysql-community-common --nodeps
rpm -e mysql-community-server --nodeps
最后需要将mysql用的端口加入防火墙,重新载入配置:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all