【msyql】LInux安装Mysql
在 CentOS 7 上安装 MySQL 并配置远程访问的步骤如下:
1. 安装 MySQL
添加 MySQL Yum 仓库
-
下载 MySQL 官方 Yum 仓库:
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
-
安装仓库:
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
安装 MySQL 服务器
-
安装 MySQL:
sudo yum install mysql-server -y
-
启动 MySQL 服务:
sudo systemctl start mysqld
-
设置 MySQL 开机自启:
sudo systemctl enable mysqld
2. 配置 MySQL
获取初始密码
MySQL 安装完成后,会生成一个临时密码。查看日志获取密码:
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:
2023-10-01T12:34:56.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc12345
运行安全脚本
使用临时密码登录 MySQL 并运行安全脚本:
sudo mysql_secure_installation
按照提示完成以下操作:
- 输入临时密码。
- 设置新密码。
- 删除匿名用户。
- 禁止 root 用户远程登录(可选)。
- 删除测试数据库。
- 重新加载权限表。
3. 修改用户权限以允许远程登录
默认情况下,MySQL 只允许本地访问。要允许远程访问,需要修改用户权限。
登录 MySQL
mysql -u root -p
创建新用户并授权
-
创建新用户(例如
remote_user
):CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
-
授予用户所有数据库的权限:
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
-
刷新权限:
FLUSH PRIVILEGES;
修改 root 用户权限(可选)
如果希望允许 root 用户远程登录,可以执行以下命令:
UPDATE mysql.user SET Host='%' WHERE User='root';
FLUSH PRIVILEGES;
4. 配置防火墙
确保防火墙允许 MySQL 的默认端口(3306)的流量。
-
开放端口:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
-
重新加载防火墙:
sudo firewall-cmd --reload
5. 测试远程连接
使用 MySQL 客户端工具(如 MySQL Workbench 或命令行)测试远程连接。
命令行测试
mysql -h your_server_ip -u remote_user -p
your_server_ip
:服务器的公网 IP 地址。remote_user
:远程登录的用户名。
6. 总结
通过以上步骤,你可以在 CentOS 7 上安装 MySQL,并配置用户权限以允许远程访问。如果仍有问题,请提供具体错误信息以便进一步排查。
参考链接
- MySQL 官方文档
- CentOS 7 防火墙配置