如何设置或重置 mysql 安装的密码为空白

如何设置或重置 mysql 安装的密码为空白

我想在新的 Ubuntu 16.04 开发机器上设置一个空白的 mysql 密码,就像我以前的机器上的密码一样。它与我现有的使用 root 的本地 ruby​​ on rails 应用配置文件配合得很好。

我开始

sudo apt-get install mysql

然后我可以使用

service mysql start

当我使用

ps aug | grep mysql

我看到进程正在运行

mysql    24618  6.5  1.6 1230276 133536 ?      Ssl  19:03   0:00 /usr/sbin/mysqld

我停止了

service mysql stop

然后我用

sudo mysqld_safe --skip-grant-tables

在另一个窗口中我

mysql> 
mysql> UPDATE mysql.user SET authentication_string = ''
    -> WHERE User = 'root' AND Host = 'localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

然后我用

sudo kill -9 [pid_of_mysqld_safe]

进而

service mysql start

正常启动,但是当我尝试

mysql -u root

我明白了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我也尝试使用实际字符串代替 '' 作为密码,但仍然遇到同样的问题

我经历过

https://help.ubuntu.com/lts/serverguide/mysql.html
https://ubuntuforums.org/showthread.php?t=2275033
https://www.unixmen.com/how-to-install-lamp-stack-on-ubuntu-16-04/
http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

但它们没有帮助,我遇到了同样的错误。

$ sudo systemctl status mysql

节目

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2016-08-24 20:04:49 EDT; 4min 39s ago
  Process: 9018 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 9013 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 9017 (mysqld)
   CGroup: /system.slice/mysql.service
           └─9017 /usr/sbin/mysqld

Aug 24 20:04:48 Ubuntu2016 systemd[1]: Starting MySQL Community Server...
Aug 24 20:04:49 Ubuntu2016 systemd[1]: Started MySQL Community Server.

答案1

尝试使用密码访问 mysql 服务器。因此:

mysql -u root -p

并输入你之前设置的1111密码

相关内容