云服务器——MySQL设置
MySQL设置
- 用的时候再启动
- 远程访问设置
- 重置密码
- 数据库、表设置
- 数据库
- 表
- 遇到的问题
用的时候再启动
关掉开机自启:
sudo systemctl disable mysqld
开启开机自启:sudo systemctl enable mysqld
# 查看MySQL当前状态sudo systemctl status mysqld# 关闭MySQL服务sudo systemctl stop mysqld# 开启MySQL服务sudo systemctl start mysqld远程访问设置
# 1.root用户登陆mysql-u root-p# 2.查看所有用户select user,hostfrommysql.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 grantsfor'testuser'@'%';# 7.删除用户drop user'testuser'@'%';重置密码
# 停止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数据库、表设置
数据库
# 查看所有数据库show database;# 创建数据库create database test;# 进入某个数据库use test;表
# 查看库中所有表show tables;# 查看表结构desc test;# 查看具体的建表语句show create table 表名;遇到的问题
1.创建数据库报错
create datebases test;ERROR1064(42000):You have an errorinyour SQL syntax;check the manual that corresponds to your MySQL server versionforthe right syntax to use near'datebases test'at line1原因:
databases关键字错了,是databases,没有s2.创建用户报错
ERROR1819(HY000):Your password doesnotsatisfy the current policy requirements原因:
MySQL8.0默认启用了密码强度验证插件(validate_password)。设置的密码太简单,不符合系统的安全策略(通常要求:包含大小写字母、数字、特殊字符,且长度至少8位)。3.链接数据库报错
Public Key Retrievalisnotallowed原因:
MySQL 是8.0+版本,默认开启了密码加密验证,连接时需要允许公钥获取。在数据库连接地址后追加:allowPublicKeyRetrieval=true&useSSL=false