MySql常见问题(长期更新)

基于mysql 8.0.3版本

  • 一、忘记root密码
    • 1.1 、linux 系统下忘记密码
    • 1.2、Windows 系统下忘记密码
    • 1.3 Unix 和类 Unix 系统
  • 二、账号问题
    • 2.1 远程访问账号设置

一、忘记root密码

1.1 、linux 系统下忘记密码

啥?你问我为什么会忘记密码?别问,问就是好长时间不用忘记了!

问题如图:
MySql常见问题(长期更新)_第1张图片
好吧,忘记了root密码,问题不大。我们来抢救一下:

1、首先我们进入:/etc/mysql/
在这里插入图片描述

2、可以看到这个文件夹下有个my.cnf 配置文件,修改my.cnf: vim my.cnf,在 [mysqld] 下加入:` --skip-grant-table,像这样:
MySql常见问题(长期更新)_第2张图片

3、重启mysql:sudo service mysql restart

4、输入 mysql 进入客户端
MySql常见问题(长期更新)_第3张图片

5、告诉服务器重新加载授权表,以便帐户管理语句起作用:FLUSH PRIVILEGES
MySql常见问题(长期更新)_第4张图片

6、修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySql常见问题(长期更新)_第5张图片

备注:skip-grant-tables 适用于任何平台下,win下mysql配置文件添加仍然有效。注意:这种方法不安全!任何人都可以在没有密码和所有权限的情况下进行连接。

1.2、Windows 系统下忘记密码

1、以管理员身份登录到系统。

2、停止MySql服务。

3、创建文本文件 mysql-init.txt。

4、写入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

5、进入到 MySQL 的 bin 目录 运行:mysqld --init-file=C:\\mysql-init.txt --console注意:mysql-init.txt文件位置为你实际的位置,这里用的不一定适合你!!!

6、如果是使用向导安装的 MySql ,则输入:
mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini" --init-file=C:\\mysql-init.txt

–defaults-file 可以使用服务管理器找到适当的设置:从“开始”菜单中选择 “控制面板”,然后 选择“管理工具”,然后选择 “服务”。在列表中找到 MySQL 服务,右键单击它,然后选择该 Properties选项。该Path to executable字段包含 --defaults-file 设置

7、服务器启动成功后,删除 mysql-init.txt.。

1.3 Unix 和类 Unix 系统

1、使用root登录到系统

2、kill 掉 MySql 服务:kill -9 pid

3、创建文本 mysql-init,写入:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

4、保存这个文本,/你保存的位置/mysql-init 注意:请确保该文件具有允许 mysql 读取它的权限

5、启动 MySql :mysqld --init-file=你保存的位置/mysql-init &

6、修改密码~

7、服务器启动成功后,删除 /home/me/mysql-init

二、账号问题

2.1 远程访问账号设置

输入设置语句GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION

报错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 'IDENTIFIED BY 'password' WITH GRANT OPTION' at line 1

解决方案:
从 MySQL 8 开始,不再可以(隐式)使用该GRANT命令创建用户,需要使用:

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

你可能感兴趣的:(mysql,mysql,数学建模,java)