mysql 安装
2024/6/21大约 2 分钟
mysql 安装
centos 下安装 mysql8(yum 方式)
1、下载并安装 MySQL 官方 Yum Repository
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
安装 yum 源:
rpm -ivh mysql80-community-release-el7-7.noarch.rpm
如果服务器上存在 mariadb,需要先卸载,否则会冲突:
rpm -qa | grep mariadb yum remove mariadb-libs
2、安装 MySQL 服务
yum -y install mysql-community-server
CentOS 8 若报错
All matches were filtered out for parameters或缺少依赖,可先执行:yum module disable mysql
安装完成后的相关目录:
| 目录 | 说明 |
|---|---|
| /etc/my.cnf | 配置文件 |
| /var/lib/mysql | 数据目录 |
| /var/log/mysqld.log | 日志文件 |
| /usr/bin/mysql | 客户端 |
3、启动 MySQL 并设置开机自启
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
4、查看 root 初始密码
MySQL 8 安装后会生成一个临时密码,在日志文件中查看:
grep 'temporary password' /var/log/mysqld.log
输出类似:
2023-01-01T00:00:00.000000Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxxxx
5、修改 root 密码
使用临时密码登录:
mysql -u root -p
修改密码(MySQL 8 默认要求密码包含大小写字母、数字和特殊字符,长度至少 8 位):
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
如果密码策略太严格,想设置简单密码,可以先降低密码强度:
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password.policy = 0;
set global validate_password.length = 4;
6、开启远程访问
use mysql;
-- % 表示允许所有 ip 访问,生产环境建议指定固定 ip
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
注意:MySQL 8 中
root@%和root@localhost是两个不同的用户,密码可以不同。 远程连接报错caching_sha2_password时,可将认证插件改为mysql_native_password:ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;
7、防火墙开放 3306 端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
firewall-cmd --list-all
云服务器还需要在安全组中放行 3306 端口。
8、修改字符集为 utf8mb4(可选)
编辑 /etc/my.cnf,在 [mysqld] 下添加:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[client]
default-character-set=utf8mb4
重启服务生效:
systemctl restart mysqld
登录后验证:
show variables like '%character%';
ubuntu 下安装 mysql8(apt 方式)
1、更新源并安装
sudo apt update
sudo apt install mysql-server -y
2、启动服务并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl status mysql
ubuntu 安装完成后自动启动且 root 默认无密码(通过 auth_socket 插件认证),直接运行即可登录:
sudo mysql
3、设置 root 密码并开启远程访问
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,注释掉只允许本地访问的配置:
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1
重启服务:
sudo systemctl restart mysql
