MySQL 安装
1. 服务器配置建议
CPU | 不低于4核 |
---|---|
内存 | 不低于8GB |
存储 | 不低于500GB |
网络 | 1000Mbps |
系统 | CentOS 7.6及以上; Ubuntu 18及以上; 各大主流国产系统(银河麒麟、统信UOS、中科方德等) |
2.下载压缩包
下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
3.切换至root
sudo su
4. 解压
tar xvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.37-linux-glibc2.12-x86_64/ /opt/mysql
5.新建data目录
mkdir /opt/mysql/data
6.环境变量
cat <<eof|tee /etc/profile.d/mysql.sh
export PATH=\$PATH:/opt/mysql/bin
eof
source /etc/profile
7. 权限设置
groupadd mysql && useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /opt/mysql
8. 初始化配置文件
cat <<eof|tee /etc/my.cnf
[mysqld]
#skip_grant_tables #密码重置,跳过权限验证
#service
port = 3306 #监听端口号,mysqld默认监听3306,建议修改成其他端口号
socket=/tmp/mysql.sock #套接字文件
basedir=/opt/mysql #安装目录
datadir=/opt/mysql/data #数据存储位置
#ssl
ssl-ca=ca.pem #CA颁发证书
ssl-cert=server-cert.pem #公钥
ssl-key=server-key.pem #私钥
#require_secure_transport=ON #强制客户端SSL访问
#log
log_error = mysqld.log #错误日志存储位置
slow_query_log = on #开启慢查询日志
slow_launch_time = 1 #慢查询阈值
slow_query_log_file = mysql-slow.log #慢查询日志存储位置
log_timestamps = SYSTEM #日志时间的时区
#optimization
group_concat_max_len = 204800 #允许的最大长度
max_connections = 500 #允许最大连接数
max_connect_errors = 1000 #允许最多链接错误次数
innodb_buffer_pool_size = 1024M #引擎缓存大小
innodb_file_per_table = 1 #表空间独立存储
max_allowed_packet = 1024M #允许的最大数据包大小
[client]
#base
socket=/tmp/mysql.sock #套接字文件
#ssl
#ssl-ca=/opt/mysql/data/ca.pem #指定ca证书
#ssl-cert=/opt/mysql/data/client-cert.pem #指定公钥证书
#ssl-key=/opt/mysql/data/client-key.pem #指定私钥
eof
chown mysql:mysql /etc/my.cnf
chmod 400 /etc/my.cnf
提示:
innodb_buffer_pool_size可以调整为您服务器内存的一半大小,例如4GB内存,可以设置为2048M。
9.初始化数据库
mysqld --initialize-insecure --user=mysql
mysql_ssl_rsa_setup
chown -R mysql:mysql /opt/mysql
如果报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法: 下载依赖文件进行安装。
- libaio1
https://mirrors.aliyun.com/debian/pool/main/liba/libaio/libaio1_0.3.110-1_amd64.deb
dpkg -i *.deb
10.设置服务
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=/opt/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
11.设置密码
mysqladmin password 'Youdu123456'
12.登录mysql测试验证
mysql -uroot -p
如果报错:
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
解决方法:
下载依赖文件进行安装。
- libncurses5
https://mirrors.aliyun.com/debian/pool/main/n/ncurses/libncurses5_6.2+20201114-2_amd64.deb
- libtinfo5
https://mirrors.aliyun.com/debian/pool/main/n/ncurses/libtinfo5_6.2+20201114-2_amd64.deb
dpkg -i *.deb
13.设置远程访问
默认mysql只能本机访问,需要授权远程访问。例如有度服务器IP是192.168.1.100,示例:
#登录mysql,执行授权语句
grant all privileges on *.* to 'root'@'192.168.1.100' identified by 'Youdu123456';
注意:
请根据实际情况修改IP地址,用户名、密码也可以自定义。
14. 防火墙
请开放3306端口,一般情况下,只对有度服务器开放即可。