1. 更新软件包列表:
sudo apt update
2. 安装MySQL服务器:
sudo apt install mysql-server -y
3. 运行安全配置向导
安装完成后,执行安全脚本以设置加固MySQL:
sudo mysql_secure_installation
根据提示完成以下操作:
-
选择密码强度验证策略(可选)。
-
为root用户设置密码。
-
移除匿名用户(选Y)。
-
禁止远程root登录(选Y)。
-
删除测试数据库(选Y)。
-
重新加载权限表(选Y)。
4. 登录MySQL并创建新用户/数据库:
我这里安装好mysql,登录mysql环节,到输入密码的时候,免密(没有输入密码,直接敲回车)就能登录,下边有恢复密码登录的方法。
4.1 使用root账号登录MySQL
sudo mysql -u root -p
4.2 修改root账号密码
-- 修改root用户的认证插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;
4.3 创建新用户/数据库:
-- 创建新数据库
CREATE DATABASE example_db;
-- 创建新用户并设置密码(替换 'username' 和 'password')
CREATE USER 'username'@'localhost' IDENTIFIED BY 'your_secure_password';
-- 授予用户对数据库的完全权限
GRANT ALL PRIVILEGES ON example_db.* TO 'username'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出MySQL
EXIT;
5. 调整身份验证方式(可选)
5.1 恢复密码验证:
若是遇到无密码就可以登录mysql,恢复密码验证
sudo systemctl stop mysql
sudo mysqld_safe &
sudo systemctl start mysql
5.2 若是忘记了root账号密码(可选):
跳过密码验证的方式启动MySQL:
sudo systemctl stop mysql
#以跳过密码验证的方式启动MySQL:
sudo mysqld_safe --skip-grant-tables &
sudo systemctl start mysql
sudo mysql -u root -p
修改root用户的认证插件
-- 修改root用户的认证插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;
6. 配置远程访问(可选)
6.1 修改MySQL绑定地址
# 编辑配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address 并修改为:
bind-address = 0.0.0.0 # 允许所有IP访问(或指定服务器IP)
6.2 创建远程访问用户
-- 登录MySQL
sudo mysql -u root -p
-- 创建允许远程连接的用户(示例:允许从任何IP访问)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'remote_password';
GRANT ALL PRIVILEGES ON example_db.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
EXIT;
7. 开放防火墙端口
# 允许3306端口(MySQL默认端口)
sudo ufw allow 3306/tcp
sudo ufw reload
8. 执行sql脚本
假设你的脚本文件名为create.sql(指定create.sql文件的完全路径)
source D:/PDF/SQL/mysql_scripts/create.sql;
常用命令
# 启动/停止/重启MySQL服务
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
# 查看服务状态
sudo systemctl status mysql
# 登录MySQL命令行
mysql -u username -p
常用mysql语法
#切换到数据库
USE 数据库名;
#显示当前数据库
SELECT DATABASE();
#列出所有数据库
SHOW DATABASES;
#列出数据库中的表:
SHOW TABLES;
#查看特定表的结构
DESCRIBE 表名;
#查看表中的内容:
SELECT * FROM 表名;
# 查看所有用户账号,需要足够高的权限,可以使用root账号
SELECT User, Host FROM mysql.user;
# 查看当前账号
SELECT user();
注意事项
-
安全建议:仅允许必要的主机远程访问,使用强密码并定期更新。
-
备份数据:定期使用 mysqldump 备份数据库。
-
错误排查:查看日志文件 /var/log/mysql/error.log。
完成以上步骤后,MySQL已配置完毕,可根据需求进行数据库操作或应用连接。