rocky9.0安装mysql8.0
一、下载Mysql安装包
压缩包自行官网下载
官网地址:https://www.mysql.com/
二、解压安装
//创建安装目录
[root@HostName ~]# cd /usr/local/
[root@HostName local]# mkdir mysql
//更改目录权限
[root@HostName local]# chmod 755 /usr/local/mysql/
//把下载的安装包放入mysql目录
//进入下载安装包目录
[root@HostName ~]# cd /usr/local/mysql
//解压安装包
[root@HostName mysql]# tar-zvh mysql-8.0.34-linux-glibc2.12-x86_64
//解压缩包重命名为mysql8.0
[root@HostName mysql]# mv mysql-8.0.34-linux-glibc2.12-x86_64 ./mysql8.0
//删除压缩包
[root@HostName mysql]# rm -f mysql-8.0.34-linux-glibc2.12-x86_64.tar.xz
[root@HostName mysql]# cd mysql8.0/
[root@HostName mysql8.0]# ls
bin docs include lib LICENSE man README share support-files
//创建使用文件夹
[root@HostName mysql8.0]# mkdir data
[root@HostName mysql8.0]# mkdir log
[root@HostName mysql8.0]# mkdir tmp
三、创建mysql用户组及用户
[root@HostName mysql8.0]# groupadd mysql
[root@HostName mysql8.0]# useradd -g mysql mysql
[root@HostName mysql8.0]# chown -R mysql.mysql /usr/local/mysql/
四、初始化数据库
初始化完成之后记住mysql密码
[root@HostName mysql8.0]# cd bin/
[root@HostName bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize
2023-09-08T03:42:30.324562Z 0 [System] [MY-013169] [Server] /usr/local/mysql/mysql8.0/bin/mysqld (mysqld 8.0.34) initializing of server in progress as process 13443
2023-09-08T03:42:30.331957Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-09-08T03:42:30.881011Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-09-08T03:42:32.587526Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: FlYkh#tfQ1=B
[root@HostName bin]#
//初始化完成之后记住mysql密码:FlYkh#tfQ1=B
五、配置Mysql并启动服务及报错解决
[root@HostName mysql8.0]# cd /etc/
[root@HostName etc]# vi my.cnf
#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
[mysql]
#basedir=/usr/local/mysql/mysql8.0
#datadir=/usr/local/mysql/mysql8.0/data/
socket=/usr/local/mysql/mysql8.0/tmp/mysql.sock
port=3306
user=mysql
#skip-grant-tables
# 指定日志时间为系统时间
#log_timestamps=SYSTEM
#log-error=/usr/local/mysql/mysql8.0/log/mysql.err
# # 指定字符集为utf8,因为mysql8.0中的默认字符集为utfmb4,会和其他程序引起兼容性问题
default-character-set=utf8
#
#
[mysqld]
basedir=/usr/local/mysql/mysql8.0
datadir=/usr/local/mysql/mysql8.0/data
socket=/usr/local/mysql/mysql8.0/tmp/mysql.sock
port=3306
user=mysql
log_timestamps=SYSTEM
collation-server = utf8_unicode_ci
character-set-server = utf8
# # 指定默认认证的加密方式,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题
default_authentication_plugin= mysql_native_password
#skip-grant-tables
[mysqld_safe]
log-error=/usr/local/mysql/mysql8.0/log/mysqld_safe.err
pid-file=/usr/local/mysql/mysql8.0/tmp/mysqld.pid
socket=/usr/local/mysql/mysql8.0/tmp/mysql.sock
#skip-grant-tables
[mysql.server]
#basedir=/usr/local/mysql/mysql8.0
datadir=/usr/local/mysql/mysql8.0/data
socket=/usr/local/mysql/mysql8.0/tmp/mysql.sock
port=3306
user=mysql
#skip-grant-tables
[mysqladmin]
socket=/usr/local/mysql/mysql8.0/tmp/mysql.sock
添加服务
[root@HostName etc]# cd /usr/local/mysql/mysql8.0/
[root@HostName mysql8.0]# cp -a ./support-files/mysql.server /etc/init.d/mysql
[root@HostName mysql8.0]# chmod +x /etc/init.d/mysql
[root@HostName mysql8.0]# chkconfig --add mysql
[root@HostName mysql8.0]# chkconfig --list mysql
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关
启动服务及报错处理
[root@HostName mysql8.0]# service mysql start
Starting MySQL.2023-09-08T03:52:21.016608Z mysqld_safe error: log-error set to '/usr/local/mysql/mysql8.0/log/mysqld_safe.err', however file don't exists. Create writable for user 'mysql'.
//问题:'/usr/local/mysql/mysql8.0/log/mysqld_safe.err', however file don't exists. Create writable for user 'mysql'.
//解决:缺少mysqld_safe.err文件,在指定目录下创建即可
[root@HostName mysql8.0]# cd /usr/local/mysql/mysql8.0/log
[root@HostName log]# touch mysqld_safe.err
[root@HostName mysql8.0]# service mysql start
Starting MySQL.. SUCCESS!
六、修改密码
[root@HostName mysql8.0]# cd bin/
[root@HostName bin]# ./mysql -uroot -p
[root@HostName bin]# ./mysql -uroot -p
./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
//解决:
[root@HostName bin]# ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
[root@HostName bin]# ./mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.34
Copyright (c) 2000, 2023, 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>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.02 sec)
七、开启远程访问
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '密码';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL ON *.* TO 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
完事