云服务器——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 grantsfortestuser%;# 7.删除用户drop usertestuser%;重置密码# 停止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 USERALTER USERrootlocalhostIDENTIFIED BY你的新强密码;# 再次刷新确保生效FLUSH PRIVILEGES;exit;# 退出客户端# 杀死免权限进程可通过 ps -ef | grep mysql 确认sudo pkill-fmysqld --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 neardatebases testat 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版本默认开启了密码加密验证连接时需要允许公钥获取。在数据库连接地址后追加allowPublicKeyRetrievaltrueuseSSLfalse