https://dev.mysql.com/downloads/
下载哪个版本,首先需要确定一下系统的glibc版本,使用如下命令:
rpm -qa | grep glibc
检查是否安装过mysql
yum remove mysql
查看是否有mysql依赖
rpm -qa | grep mysql
如果有则卸载
//普通删除模式
rpm -e xxx(mysql_libs)
//强力删除模式,如果上述命令删除时,提示有依赖其他文件,则可以用该命令对其进行强力删除
rpm -e --nodeps xxx(mysql_libs)
检查是否有mariadb
rpm -qa | grep mariadb
如果有则卸载
rpm -e --nodeps mariadb-libs
安装mysql依赖包
yum install libaio
进入到/usr/local,把安装包上传上来
cd /usr/local
[root@MiWiFi-RA72-srv local]#
[root@MiWiFi-RA72-srv local]# ls
bin etc games include lib lib64 libexec mysql-8.4.0-linux-glibc2.17-x86_64.tar sbin share src
[root@MiWiFi-RA72-srv local]# tar -xvf mysql-8.4.0-linux-glibc2.17-x86_64.tar
mysql-test-8.4.0-linux-glibc2.17-x86_64.tar.xz
mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz
mysql-router-8.4.0-linux-glibc2.17-x86_64.tar.xz
[root@MiWiFi-RA72-srv local]# ls
bin include libexec mysql-router-8.4.0-linux-glibc2.17-x86_64.tar.xz share
etc lib mysql-8.4.0-linux-glibc2.17-x86_64.tar mysql-test-8.4.0-linux-glibc2.17-x86_64.tar.xz src
games lib64 mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz sbin
[root@MiWiFi-RA72-srv local]# tar -Jxvf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz
解压完后,按照个人意愿是否删除压缩包,还有更改文件目录名字
[root@MiWiFi-RA72-srv local]# ls
bin include libexec mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz sbin
etc lib mysql-8.4.0-linux-glibc2.17-x86_64 mysql-router-8.4.0-linux-glibc2.17-x86_64.tar.xz share
games lib64 mysql-8.4.0-linux-glibc2.17-x86_64.tar mysql-test-8.4.0-linux-glibc2.17-x86_64.tar.xz src
[root@MiWiFi-RA72-srv local]# mv mysql-8.4.0-linux-glibc2.17-x86_64 mysql
[root@MiWiFi-RA72-srv local]# ls
bin games lib libexec mysql-8.4.0-linux-glibc2.17-x86_64.tar mysql-router-8.4.0-linux-glibc2.17-x86_64.tar.xz sbin src
etc include lib64 mysql mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz mysql-test-8.4.0-linux-glibc2.17-x86_64.tar.xz share
[root@MiWiFi-RA72-srv local]# rm -f mysql*.tar
[root@MiWiFi-RA72-srv local]# rm -f mysql*.xz
[root@MiWiFi-RA72-srv local]# ls
bin etc games include lib lib64 libexec mysql sbin share src
[root@MiWiFi-RA72-srv local]#
创建数据库文件存放的文件夹。这个文件夹将来存放每个数据库的库文件,然后配置my.cnf文件
[root@MiWiFi-RA72-srv local]# cd mysql
[root@MiWiFi-RA72-srv mysql]# ls
bin docs include lib LICENSE man README share support-files
[root@MiWiFi-RA72-srv mysql]# mkdir mysqldb
[root@MiWiFi-RA72-srv mysql]# chmod -R 777 /usr/local/mysql/
[root@MiWiFi-RA72-srv mysql]# vi /etc/my.cnf
[mysqld]
# 设置root可以启动,不然启动会报错
user=root
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 按实际需求设置该参数
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
进入mysql 安装目录下:安装mysql,并记住初始化随机密码
[root@MiWiFi-RA72-srv bin]# cd /usr/local/mysql/bin/
[root@MiWiFi-RA72-srv bin]# ./mysqld --initialize --console
2024-05-07T07:41:16.843075Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-05-07T07:41:16.844595Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.4.0) initializing of server in progress as process 21935
2024-05-07T07:41:16.848795Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2024-05-07T07:41:16.862801Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-05-07T07:41:17.129515Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-05-07T07:41:18.660809Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: kd>A9Yi+?GeQ
2024-05-07T07:41:20.940491Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
[root@MiWiFi-RA72-srv support-files]# ./mysql.server start
Starting MySQL. SUCCESS!
[root@MiWiFi-RA72-srv support-files]# cd /usr/local/mysql/support-files
如果出现以下错误,可以重新赋予权限在启动
[root@MiWiFi-RA72-srv support-files]# ./mysql.server start
Starting MySQL...... ERROR! The server quit without updating PID file (/usr/local/mysql/mysqldb/MiWiFi-RA72-srv.pid).
[root@MiWiFi-RA72-srv support-files]# cd /usr/local/mysql/support-files
[root@MiWiFi-RA72-srv support-files]# chmod -R 777 /usr/local/mysql
[root@MiWiFi-RA72-srv support-files]# ./mysql.server start
Starting MySQL. SUCCESS!
将mysql添加到系统进程中,并设置mysql自启动
[root@MiWiFi-RA72-srv support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@MiWiFi-RA72-srv support-files]# chmod +x /etc/init.d/mysqld
[root@MiWiFi-RA72-srv support-files]# systemctl enable mysqld
mysqld.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig mysqld on
修改root用户登录密码,设置允许远程登录
[root@MiWiFi-RA72-srv support-files]# cd /usr/local/mysql/bin/
[root@MiWiFi-RA72-srv bin]# ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.0
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> alter user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
Query OK, 0 rows affected (0.01 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 user.Host='%'where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
相关命令
service mysql restart #重启
systemctl status mysql #查看状态
设置防火墙
[root@MiWiFi-RA72-srv bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@MiWiFi-RA72-srv bin]# firewall-cmd --reload
success
[root@MiWiFi-RA72-srv bin]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports: 39306/tcp 3306/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: