我想在新的 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密码