mysql8 General版本安装指南
此文章详细阐明了如何在离线环境下,使用mysql官方General版本在centos7部署mysql8。
- 官网下载mysql Generic 版本,Generic版本是通用的,不用编译的,二进制的。
https://dev.mysql.com/downloads/mysql/ - 将安装包导入linux系统
- 检查是否已存在mysql命令
rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 - 检查是否已存在mysql用户,若没有,进行添加
useradd -m -p password mysql 该命令将创建一个名为 mysql 的用户,并在 /home 目录下创建一个与用户名相同的目录。 其中,-m 参数表示创建用户时同时创建其对应的 home 目录 -p 参数后面接的是密码的加密字符串(使用 openssl passwd -1 命令生成)。 - 解压
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz - 将解压后的文件夹复制到/usr/local/mysql8
mv mysql-8.0.32-linux-glibc2.12-x86_64/ /usr/local/mysql8 chown -R mysql:mysql /usr/local/mysql8/ - 修改/etc/profile,添加环境变量
尾部添加: export PATH=$PATH:/usr/local/mysql8/bin 或者 echo 'export PATH=$PATH:/usr/local/mysql8/bin' >> /etc/profile source /etc/profile -
编辑/etc/my.cnf
[mysqld] # 数据存储路径 datadir=/home/mysql_data # MySQL使用的套接字文件路径 socket=/tmp/mysqld.sock # General port = 3306 user = mysql # 错误日志文件路径 log-error=/home/mysql_log/mysqld.log # 进程ID文件路径 pid-file=/home/mysql_pid/mysqld.pid # 配置MySQL字符集 character-set-server=utf8mb4 # 配置innodb缓存大小 innodb_buffer_pool_size=12G # 设置innodb文件大小 innodb_log_file_size=2G # 最大连接数 max_connections=1000 # 读写线程数 innodb_read_io_threads=4 innodb_write_io_threads=4 # MySQL使用的线程数 innodb_thread_concurrency=16 # 执行查询的最大时间,超时将被终止 max_execution_time=300 # 开启慢查询日志 slow_query_log=1 # 慢查询日志存放位置 slow_query_log_file=/home/mysql_log/mysql-slow.log # 慢查询阈值,超过这个时间的查询被认为是慢查询 long_query_time=2 # 开启二进制日志 log-bin=mysql-bin # MySQL服务器所监听的IP地址 bind-address=0.0.0.0 # MySQL客户端模块配置 [client] default-character-set=utf8mb4 # MySQL服务器模块配置 [mysql] # 配置MySQL客户端模块使用的套接字文件路径 socket=/tmp/mysqld.sock # MySQL客户端默认字符集 default-character-set=utf8mb4 [mysqldump] # 配置mysqldump客户端模块使用的套接字文件路径 socket=/tmp/mysqld.sock -
创建数据目录、日志目录、pid文件目录
mkdir /home/mysql_data mkdir /home/mysql_log mkdir /home/mysql_pid chown -R mysql:mysql /home/mysql_* - 初始化mysql,正常没有任何提示
mysqld --defaults-file=/etc/my.cnf --initialize-insecure - 复制/usr/local/mysql8/support-files/mysql.server到/etc/init.d/mysql
cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql 编辑mysql.server文件,修改以下配置项 basedir=/usr/local/mysql8 datadir=/home/mysql_data -
重新加载 systemd 系统管理器的配置文件和单元文件
systemctl daemon-reload systemctl start mysql systemctl status mysql执行以下命令切换身份验证方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';将上述命令中的“新密码”替换为你要设置的新密码即可。
如果在centos8/9上发现执行mysql命令报错
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
可以这么做
find /usr -name "libtinfo.so*"
# 显示如下:
/usr/lib64/libtinfo.so
/usr/lib64/libtinfo.so.6.2
/usr/lib64/libtinfo.so.6
创建一个软连接
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
使用systemctl管理:
下面是使用systemctl管理mysql的具体步骤:
- 创建mysql.service文件
在/etc/systemd/system/目录下创建mysql.service文件,内容如下:
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=infinity
LimitNPROC=infinity
Restart=always
PrivateTmp=true
[Install]
WantedBy=multi-user.target
该文件定义了mysql服务的基本信息,如服务名称、服务类型、服务运行所需的用户、服务执行命令以及服务启动顺序等。
- 重新加载systemd配置文件
执行以下命令重新加载systemd配置文件:
systemctl daemon-reload
- 启动mysql服务
执行以下命令启动mysql服务:
systemctl start mysql
- 设置mysql服务开机自启动
执行以下命令设置mysql服务开机自启动:
systemctl enable mysql
这样,在下次系统启动时,mysql服务就会自动启动了。
- 查看mysql服务状态
执行以下命令可以查看mysql服务的运行状态:
systemctl status mysql
如果mysql服务已经成功启动,会显示"active (running)"的状态信息。