Administrator
发布于 2024-05-15 / 12 阅读
0
0

Centos7环境下安装MySQL8详细教程

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: 


评论