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)"的状态信息。
2条评论
Margaret Clark
Hi! I just wanted to ask if you ever have any problems with hackers?
My last blog (wordpress) was hacked and I ended up losing months of hard work due to no backup.
Do you have any solutions to prevent hackers?
jing
The simplest way is to open only ports 22 and 443 on your server,use mature software frameworks and enforce strong passwords for all system configurations.