Install MySQL CentOS
https://www.mysqltutorial.org/getting-started-with-mysql/install-mysql-centos
Summary: in this tutorial, you will learn step-by-step how to install MySQL 8 on CentOS 7.
To install MySQL 8 on CentOS 7, you follow these steps:
Step 1. Add the MySQL Yum Repository
Add the official MySQL repository to your system’s package manager (yum)
sudo rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
Code language: JavaScript (javascript)
Step 2. Download the official MySQL GPG key using
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
Code language: JavaScript (javascript)
Step 3. Install MySQL 8 Community Server
Install the MySQL 8 Community Server package using the following command:
sudo yum install mysql-server
Step 4. Start MySQL Service
Start the MySQL service and enable it to run at boot with:
sudo systemctl start mysqld
sudo systemctl enable mysqld
Step 5. Show the default password for the root user
When you install MySQL 8.0, the root user account is granted a temporary password. To show the password of the root user account, you use the following command:
sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'
Code language: JavaScript (javascript)
Here is the output:
Kq%<ul_0M*O0
Note that your temporary password will be different. You will need this password to change the password of the root
user account.
Step 6. MySQL Secure Installation
Execute the command mysql_secure_installation to secure the MySQL server:
mysql_secure_installation
It will prompt you for the current password of the root account:
Enter password for user root:
Enter the temporary password above and press Enter
. The following message will show:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
Code language: PHP (php)
You will need to enter the new password for the root
‘s account twice. It will prompt some questions, it is recommended to type yes (y):
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Step 7. Connect to MySQL
Use this command to connect to the MySQL server:
mysql -u root -p
It will prompt you for the password of the root
user. You type the password and press Enter
:
Enter password:
It will show the mysql
command:
mysql>
Use the SHOW DATABASES
to display all databases in the current server:
mysql> show databases;
Code language: SQL (Structured Query Language) (sql)
Here is the output:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.05 sec)
Code language: JavaScript (javascript)
In this tutorial, you have learned step-by-step how to install MySQL 8 on CentOS 7.
MySQL Root账号远程访问配置指南
本文将指导您如何安全地配置MySQL root账号以允许远程访问,并提供最佳实践建议。
配置步骤
1. 修改MySQL配置
首先需要确保MySQL服务监听所有网络接口,而不仅仅是本地回环地址。
编辑MySQL配置文件(通常位于/etc/mysql/my.cnf
或/etc/mysql/mysql.conf.d/mysqld.cnf
):
[mysqld]
bind-address = 0.0.0.0 # 改为监听所有网络接口
2. 创建或修改MySQL用户权限
登录MySQL并执行以下命令:
-- 方法1:创建允许远程访问的root用户(推荐)
CREATE USER 'root'@'%' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
-- 方法2:修改现有root用户的访问权限(如果root已存在)
UPDATE mysql.user SET host='%' WHERE user='root';
-- 刷新权限
FLUSH PRIVILEGES;
3. 重启MySQL服务
sudo systemctl restart mysql
# 或者
sudo service mysql restart
4. 配置防火墙(如果需要)
如果服务器启用了防火墙,需要开放MySQL端口(默认3306):
sudo ufw allow 3306/tcp
安全注意事项
<div class="warning"> <strong>安全警告:</strong>允许root账号远程访问会带来安全风险,请考虑以下建议 </div>
-
使用强密码:确保root密码足够复杂
-
限制访问源IP:只允许特定IP地址访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' WITH GRANT OPTION;
-
考虑使用SSH隧道:替代直接远程连接
-
定期审查访问日志:监控异常连接尝试
-
使用非标准端口:考虑更改MySQL默认端口
连接测试
使用以下命令测试远程连接:
mysql -h [服务器IP] -u root -p
替代方案(推荐)
考虑创建具有必要权限的专用用户,而非直接使用root账号:
CREATE USER 'admin'@'%' IDENTIFIED BY 'strong_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'admin'@'%';
总结
允许MySQL root账号远程访问应谨慎实施。务必采取适当的安全措施,并考虑使用专用管理账户而非root账户进行远程管理。
记得在完成配置后验证设置是否正确,并测试连接是否正常工作。