跳转至

Linux版安装

1. 服务器配置建议

200人以内 1000人以内
CPU 2核 4核
内存 4GB 8GB
存储 100GB 500GB
网络 1000Mbps 1000Mbps
系统 CentOS 7及以上版本;
Ubuntu 18及以上版本;
CentOS 7及以上版本;
Ubuntu 18及以上版本;

​ 1000人以上请联系我们提供方案建议。

2. 说明

​ 本文以CentOS 7作为示例环境,其它Linux发行版在操作步骤上可能稍有不同,请根据实际情况处理,如需协助请提交工单。

3. 下载压缩包

yum -y install wget
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz

4. 解压压缩包

tar xvf mysql*.tar.gz
rm -f mysql*.tar.gz

5. 目录设置

mv mysql* /usr/local/mysql
mkdir /usr/local/mysql/data

6. 添加环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile && source /etc/profile
ln -s /usr/local/mysql/data/mysql.sock /tmp

7. 权限设置

groupadd mysql && useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql && chmod 750 /usr/local/mysql

8. 配置文件

cat > /etc/my.cnf <<eof
[mysqld]
#skip_grant_tables #密码重置,跳过权限验证

#service
port = 3306 #监听端口号,mysqld默认监听3306,建议修改成其他端口号
socket=/usr/local/mysql/data/mysql.sock #套接字文件
datadir=/usr/local/mysql/data #数据存储位置
basedir=/usr/local/mysql #安装目录

#ssl
ssl-ca=cacert.pem #CA颁发证书
ssl-cert=server-cert.pem #公钥
ssl-key=server-key.pem #私钥
#require_secure_transport=ON #强制客户端SSL访问

#log
log_error = /usr/local/mysql/data/mysqld.log #错误日志存储位置
slow_query_log = on #开启慢查询日志
slow_launch_time = 10 #慢查询阈值
slow_query_log_file = /usr/local/mysql/data/mysql-slow.log #慢查询日志存储位置
log_timestamps=SYSTEM

#optimization
group_concat_max_len = 204800 #允许的最大长度
max_connections = 500 #允许最大连接数
max_connect_errors = 1000 #允许最多链接错误次数
innodb_buffer_pool_size = 256M #引擎缓存大小
innodb_file_per_table = 1 #表空间独立存储

#binlog
server-id=1 #每个server的ID均不一样,主服务器用1,其它服务器顺延使用
log-bin=mysql-bin #binlog文件名称,可自定义
expire_logs_days = 7 #binlog有效期(天)
eof
chown mysql:mysql /etc/my.cnf
chmod 400 /etc/my.cnf

提示:

innodb_buffer_pool_size可以调整为您服务器内存的一半大小,例如4GB内存,可以设置为2048M。

9. 安装依赖库

yum install -y libaio numactl || apt install -y libaio1 numactl

10. 初始化MySQL

mysqld --initialize-insecure --user=mysql
mysql_ssl_rsa_setup

11. 设置服务并启动

cat <<eof|tee /etc/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf \$MYSQLD_OPTS
ExecStop=/bin/kill -s QUIT \$MAINPID
ExecReload=/bin/kill -s HUP \$MAINPID
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 51200
PrivateTmp=false
TimeoutSec=0

[Install]
WantedBy=multi-user.target
eof
chmod 644 /etc/systemd/system/mysql.service
systemctl enable mysql && systemctl start mysql && systemctl status mysql

12. 设置密码

mysqladmin -uroot password Youdu123\!\!

13. 设置远程访问

​ 默认mysql只能本机访问,需要授权远程访问。例如有度服务器IP是192.168.1.100,示例:

#登录mysql
mysql -uroot -p

#执行授权语句
grant all privileges on *.* to 'root'@'192.168.1.100' identified by 'Youdu123!!';

注意:

请根据实际情况修改IP地址,用户名、密码也可以自定义。

14. 防火墙

​ 请开放3306端口,一般情况下,只对有度服务器开放即可。