云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

记一次rockylinux9下安装mysql8.x

jxf315 2025-01-11 14:05:33 教程文章 19 ℃

使用二进制包安装

mysql8.x二进制包分两个glibc版本,执行如下命令查看系统的当前支持的glibc版本;

strings /lib64/libc.so.6|grep ^GLIBC

从官网获取对应版本的二进制安装包解压安装;

# download: https://dev.mysql.com/downloads/mysql/, 选择"Linux - Generic"类型
mkdir -p /usr/local/mysql
tar xf mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /usr/local/mysql --strip-components=1

# path
echo "export MYSQL_HOME=/usr/local/mysql" >> /etc/profile
echo "export PATH=\$MYSQL_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
mysql --version

创建运行用户和相关目录;

useradd -s /sbin/nologin -M mysql
chown -R mysql:mysql /usr/local/mysql
mkdir -p /data/mysql/{data,logs}
chown -R mysql:mysql /data/mysql
chmod 755 /data

添加配置文件;

cat > /etc/my.cnf <<EOF
[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8
collation-server = utf8_bin
default_storage_engine = InnoDB
port = 3306

user=mysql

basedir = /usr/local/mysql
datadir = /data/mysql/data

max_connections=1000

slow_query_log_file = /data/mysql/logs/slow.log
log-error = /data/mysql/logs/error.log
log-bin = /data/mysql/logs/mysqld-bin
socket = /data/mysql/data/mysql.sock

# 33060(默认)端口是MySQL 8中新增的管理端口,用于管理MySQL实例中的各种配置信息和操作
# 相较于MySQL 5.7版本中的3306端口,33060端口可以更加方便和安全地对MySQL实例进行管理和监控
# mysqlx插件的侦听端口
mysqlx_port=33060
mysqlx_socket=/data/mysql/data/mysqlx.sock

lower_case_table_names = 1
sql_mode = NO_ENGINE_SUBSTITUTION

default-time_zone='+8:00'

# 默认m采用ysql8的新加密方式caching_sha2_password,5.7版本及以前使用mysql_native_password
# 如果想设置默认加密方式则取消下面的注释
# default_authentication_plugin = mysql_native_password
EOF

初始化数据库;

mysqld --defaults-file=/etc/my.cnf  --initialize-insecure
chown -R mysql:mysql /data/mysql

添加启动脚本;

dnf install -y chkconfig # 默认rocky9没有/etc/init.d/目录,需要安装这个工具
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld    
chmod +x /etc/init.d/mysqld
service mysqld start

设置账号密码(默认root@localhost没有密码);

mysql -S /data/mysql/data/mysql.sock

> select user,host,authentication_string,plugin from mysql.user;
> alter user 'root'@'localhost' identified by 'root123';
> flush privileges;

开机自启;

chkconfig --add mysqld && chkconfig mysqld on
chkconfig --list mysqld
最近发表
标签列表