云服务器——MySQL设置

MySQL设置

用的时候再启动

关掉开机自启:sudo systemctl disable mysqld

开启开机自启:sudo systemctl enable mysqld

python 复制代码
# 查看MySQL当前状态
sudo systemctl status mysqld

# 关闭MySQL服务
sudo systemctl stop mysqld

# 开启MySQL服务
sudo systemctl start mysqld

远程访问设置

python 复制代码
# 1.root用户登陆
mysql -u root -p

# 2.查看所有用户
select user,host from mysql.user;
# user:是用户名
# host:允许登陆的地址
	localhost:只能连本机
	%允许任何IP远程连接

# 3.创建一个用户并允许远程连接,MySQL8.0开始密码必须有大小写字母+数字+特殊符号
create user '用户名'@'%' identified by '密码'

# 4.给用户赋予权限
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, INDEX, EXECUTE ON testdb.* TO '用户名'@'%';
# 给用户赋予所有权限(谨慎操作)
# grant all privileges on *.* to 'testuser'@'%';

# 5.刷新权限
flush privileges;

# 6.查看用户权限
show grants for 'testuser'@'%';

# 7.删除用户
drop user 'testuser'@'%';

重置密码

python 复制代码
# 停止mysql服务
systemctl stop mysqld

# 切换到运行用户(如 mysql),禁止远程连接,仅本地可用
# --skip-grant-tables:跳过权限验证,免密登录;
# --skip-networking:禁止远程连接,避免安全风险;
# 保持当前终端窗口不关闭,进程后台运行。
sudo -u mysql mysqld --skip-grant-tables --skip-networking &

# 新开终端,无密码登录
mysql -u root

# 刷新权限,让改密生效
FLUSH PRIVILEGES;  

# 替换为复杂密码(建议8位+大小写+数字+符号)(MySQL 8.0+ 必用 ALTER USER)
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新强密码';  

# 再次刷新,确保生效
FLUSH PRIVILEGES;  

exit;  # 退出客户端

# 杀死免权限进程(可通过 ps -ef | grep mysql 确认)
sudo pkill -f "mysqld --skip-grant-tables"

# 启动正常服务
systemctl start mysql

# 验证登录
# 输入新密码即可登录
mysql -u root -p  

数据库、表设置

数据库

python 复制代码
# 查看所有数据库
show database;

# 创建数据库
create database test;

# 进入某个数据库
use test;

表

python 复制代码
# 查看库中所有表
show tables;

# 查看表结构
desc test;

# 查看具体的建表语句
show create table 表名;

遇到的问题

1.创建数据库报错

python 复制代码
create datebases test;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'datebases test' at line 1

原因:

python 复制代码
databases关键字错了,是databases,没有s

2.创建用户报错

python 复制代码
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因:

python 复制代码
MySQL 8.0 默认启用了密码强度验证插件(validate_password)。设置的密码太简单,不符合系统的安全策略(通常要求:包含大小写字母、数字、特殊字符,且长度至少 8 位)。

3.链接数据库报错

python 复制代码
Public Key Retrieval is not allowed

原因:

python 复制代码
MySQL 是 8.0+ 版本,默认开启了密码加密验证,连接时需要允许公钥获取。在数据库连接地址后追加:allowPublicKeyRetrieval=true&useSSL=false
相关推荐
Decay__1 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
HideF4 小时前
Linux
linux·服务器·网络
Ruiery6 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠7 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
Decay__7 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
迪菲赫尔曼9 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by2099910 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
迪菲赫尔曼10 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
cq林志炫11 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
yyuuuzz11 小时前
云服务器安全组规则优先级的机制记录
运维·服务器·网络·安全·阿里云·aws