如何重设或更改MySQL root密码?


178

如何在ubuntu服务器中更改MySQL的root密码和用户名?设置任何更改之前,我需要停止mysql服务吗?

我也有phpmyadmin设置,phpmyadmin会自动更新吗?


如果您不需要数据,则可以通过完全删除mysql来“重置”密码:stackoverflow.com/questions/10853004/…然后再次安装(将提示您输入“新”根密码)FWIW: )
rogerdpack

您知道MySQL的root密码吗?
Franck Dernoncourt

2
在mysql-server-5.7中,这些方法不起作用。使用askubuntu.com/a/848504中
Pragalathan M,

Answers:


223

在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行。

  1. 停止MySQL服务器: sudo /etc/init.d/mysql stop
  2. 开始mysqld配置:sudo mysqld --skip-grant-tables &

    在某些情况下,您必须创建第/var/run/mysqld一个:

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. 跑: sudo service mysql start
  4. 以root身份登录到MySQL: mysql -u root mysql
  5. YOURNEWPASSWORD用您的新密码替换:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

注意:在某些版本中,如果passwordcolumn不存在,则可能要尝试:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

注意:此方法不被认为是重置密码的最安全方法,但是它可以工作。

参考文献:

  1. 在Ubuntu Linux上设置/更改/重置MySQL根密码
  2. 如何重设根密码

20
当然,在这一点之后,您将需要终止在步骤2中启动的临时的无密码服务器进程sudo killall -9 mysqld。然后sudo service mysql start重新启动正常的守护程序...
Lambart 2013年

7
此答案中的方法仅用于重置您不知道的MySQL根密码[源 ]。如果您知道的话,那么SET PASSWORDMySQL的说明就是给您的。
tanius

53
当我通过root登录时,我直到第3步都无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器
Sushivam,2016年

12
在某些情况下,你还需要运行mkdir /var/run/mysqldchown mysql: /var/run/mysqld步骤1和2之间
内维尔Nazerane

8
步骤3在Ubuntu 18.04上不适合我。我刚刚使用sudo mysql
itsols '18 -10-24

119

唯一适用于我的方法是此处描述的方法(我正在运行ubuntu 14.04)。为了清楚起见,这些是我遵循的步骤:

  1. sudo vim /etc/mysql/my.cnf
  2. 在末尾添加以下行:

    [mysqld]
    
    跳过拨款表
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';-查看顶部以确定密码列是称为 password还是authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; -使用上方的正确密码列

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. 如果要保持安全性标准,请删除在步骤2中添加的行

  12. sudo service mysql restart

供参考:https : //dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


8
最后,这对我有用!我在Ubuntu 16.04上运行MySQL 5.7.18。我尝试了dpkg-reconfigure,Anvesh的答案,Christian Mark的答案,甚至MySQL的帮助页面上的说明。
mbuc91 '17

9
我必须运行UPDATE mysql.user SET authentication_string = PASSWORD('newpwd')WHERE User ='root'; 而不是第5行
。– mbuc91

2
唯一对我有用的解决方案。我有Ubuntu 17.04和mysql 5.7
Mohamed

1
不幸的是,这对我不起作用mysql 5.7.22 ubuntu 18.04
Mario

1
一切都按预期进行。但是,当尝试登录时,它的意思是输入密码:错误1698(28000):用户'root'@'localhost'的访问被拒绝
Dipak Chatterjee

101

在ubuntu服务器上重置根密码的官方简便方法...

如果您使用的是16.04、14.04和12.04:

sudo dpkg-reconfigure mysql-server-5.5

如果您使用的是10.04:

sudo dpkg-reconfigure mysql-server-5.1

如果不确定安装了哪个mysql服务器版本,可以尝试:

dpkg --get-selections | grep mysql-server

更新了mysql-server-5.7的注释

请注意,如果使用的是mysql-server-5.7,则不能使用上面显示的更简单的dpkg-reconfigure方法。

如果您知道密码,请登录并运行此命令:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

另外,您可以使用以下方法:

sudo mysql_secure_installation

这将向您询问有关确保安装安全的一系列问题(强烈建议),包括是否要提供新的root密码。

如果您不知道root密码,请参考此以Ubuntu为中心的过程

查看更多信息:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html


3
即使您丢失了原始的MySQL根密码也可以使用-很好。
塔尼厄斯(Tanius)

4
Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage 2014年

以及mysql v 5.0一起工作...sudo dpkg-reconfigure mysql-server-5.0
dsghi 2015年

4
sudo dpkg-reconfigure mysql-server-5.7不适用于Ubuntu 18.04重置根密码。还有其他选择吗?
Jagdeep Singh '18

Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb

76

我将分享逐步的最终解决方案,以在Linux Ubuntu中重置MySQL密码。

参考来自博客(dbrnd.com)

步骤1:停止MySQL服务。

sudo stop mysql

步骤2:杀死所有正在运行的mysqld。

sudo killall -9 mysqld

步骤3:以安全模式启动mysqld。

sudo mysqld_safe --skip-grant-tables --skip-networking &

步骤4:启动mysql客户端

mysql -u root

步骤5:成功登录后,请执行此命令以更改任何密码。

FLUSH PRIVILEGES;

步骤6:您可以更新mysql root password。

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

注意:在MySQL 5.7上,列Password称为authentication_string

步骤7:请执行此命令。

FLUSH PRIVILEGES;

确实。而且,它更接近官方文档。如果您遇到以下情况:“错误1524(HY000):未加载插件'auth_socket'”,请查看stackoverflow.com/questions/37879448/…–
Wtower

对于主机为“ localhost”的root用户,我还必须将mysql.user.plugin从“ auth_socket”更改为“ mysql_native_password”。
布兰登

1
我必须使用“ sudo /etc/init.d/mysql stop”来停止服务,并使用“ UPDATE mysql.user SET authentication_string = PASSWORD('newpwd')WHERE User ='root';” 更新密码
L Bahr

1
已验证的_string帮助
Faiyaz Md Abdul

76

什么对我有用(Ubuntu 16.04,mysql 5.7):

停止MySQL

sudo service mysql stop

制作MySQL服务目录。

sudo mkdir /var/run/mysqld

授予MySQL用户写入服务目录的权限。

sudo chown mysql: /var/run/mysqld

手动启动MySQL,无需权限检查或联网。

sudo mysqld_safe --skip-grant-tables --skip-networking &

在另一个控制台上,不用密码登录。

mysql -uroot mysql

然后:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

关闭MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常启动MySQL服务。

sudo service mysql start

其他方法对我不起作用,但是这种方法(谢谢!),或者也可以在这里rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung

10
很有用 !在我的特定情况下(Ubuntu 18.04 LTS),我不得不将主机'%'替换为'localhost'–
FredericK

这在ubuntu 18.04中不起作用。但是它可以解决这里描述的这种微小变化stackoverflow.com/a/53385753/1591143
Aleksandar Popovic

42

我在使用ubuntu 18.04和mysql 5.7时遇到问题,这是解决方案

在执行命令之前尝试重新启动mysql-server

sudo service mysql restart

MYSQL服务器> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL服务器<5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

1
谢谢,我也在这里运行Ubuntu 18.04,该MYSQL-SERVER >= 5.7版本是唯一实际解决问题的东西
Miguelgraz,

1
这是在Ubuntu 18.04 mysql安装中使用的版本。MYSQL-SERVER >= 5.7版本准确。
Sathish Manohar

34

更改MySQL root密码。

此方法将密码公开给命令行历史记录,这些命令应以root用户身份运行。

  1. 通过mysql命令行工具登录:

    mysql -uroot -poldpassword
  2. 运行以下命令:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

要么

  1. 运行以下命令,为当前用户设置密码(在这种情况下为“ root”):

    设置密码=密码('newpassword');


22

首先运行以下命令:

sudo mysql

然后应检查您的MySQL用户帐户使用哪种身份验证方法。因此请运行此命令

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在您已经可以看到类似的内容:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

在上面的表格中,您可以看到所有mysql用户的帐户状态&如果您mysql_native_password在插件列中看到之前为root帐户设置了密码auth_socket。总之,要更改您的root密码,应运行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

确保将密码更改为您选择的强密码。然后,为了重新加载服务器以使新更改生效,请运行此命令;

FLUSH PRIVILEGES;

因此,再次通过以下命令检查您的mysql已采用的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

现在的输出是:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

如您在赠款表中看到的,您的根帐户拥有mysql_native_password 。现在您可以退出MYSQL shell

exit;

就是这样sudo service mysql restart。只需要通过重启mysql 。现在,您可以使用密码轻松地以root帐户登录mysql。


我认为这来自DigitalOcean,这是在Virtual Box上运行的Ubuntu 18.04上唯一适用于我的解决方案
Kemal

它在Ubuntu 18.04中完美工作。谢谢。
mahfuz

12

如果您想更改MySQL的root密码,请在终端中输入:

sudo dpkg-reconfigure mysql-server-5.5

MySQL守护程序将停止,并提示您输入新密码。


1
这是一种更好的方法。由于某些mysql错误,我无法运行以前的命令...
Andy

在ubuntu 16.04上sudo dpkg-reconfigure mysql-server-5.7
Nick Barrett

2
sudo dpkg-reconfigure mysql-server-5.7在Ubuntu 16.04上运行,但没有提示输入新密码。
Franck Dernoncourt '18年

如果说mysql-server is broken or not fully installed,一个可以使用sudo apt purge mysql*sudo apt install mysql-server
帕维尔

12

这就像我为Ubuntu 16.04所做的魅力一样。当我从那里得到的时候,对下面的链接有充分的感谢。[ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

停止MySQL

sudo service mysql stop

制作MySQL服务目录。须藤mkdir / var / run / mysqld

授予MySQL用户写入服务目录的权限。

sudo chown mysql: /var/run/mysqld

手动启动MySQL,无需权限检查或联网。

sudo mysqld_safe --skip-grant-tables --skip-networking &

不使用密码登录。

mysql -uroot mysql

更新root用户的密码。确保通过以下查询至少更新了根帐户。进行一些选择并检查现有值(如果需要)

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

关闭MySQL。

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

正常启动MySQL服务。

sudo service mysql start

11
  1. 停止MySQL sudo服务mysql stop

  2. 制作MySQL服务目录。 须藤mkdir / var / run / mysqld

  3. 授予MySQL用户写入服务目录的权限。 须藤chown mysql:/ var / run / mysqld

  4. 手动启动MySQL,无需权限检查或联网。 须藤mysqld_safe --skip-grant-tables --skip-networking&

5.不使用密码登录。 mysql -uroot mysql

6.更新root用户的密码。

更新mysql.user SET authentication_string = PASSWORD('YOURNEWPASSWORD'),plugin ='mysql_native_password'WHERE User ='root'AND Host ='%'; 出口;

  1. 关闭MySQL。 sudo mysqladmin -S /var/run/mysqld/mysqld.sock关闭

  2. 正常启动MySQL服务。 sudo服务mysql启动


1
嗨,这个答案对我有用,但是我不得不使用另一个命令: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';without AND Host='%'。谢谢!
大卫·科拉尔

10

这是我的解决方案。我在Ubuntu 18.04上工作:https : //stackoverflow.com/a/46076838/2400373

但是在最后一步进行此更改很重要:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 

天哪!非常感谢!这是对我而言唯一有效的方法。忘了那个愚蠢的安全安装脚本,因为它使我可以在不要求密码的情况下将新安装的5.7广泛向用户开放...如果Linux / Ubuntu是针对安全意识用户的,为什么保护像MySQL服务器这样的关键应用程序就这么难? ?
Thomas Urban

9

该解决方案属于MySQL的早期版本。通过使用套接字身份验证登录到MySQL,就可以做到这一点。

sudo mysql -u root

然后可以运行以下命令。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

详细信息在这里


1
我无法以身份登录,sudo mysql -u root但能够以身份登录sudo mysql并运行ALTER USER命令。
itsols '18 -10-24

我收到此错误:“您的密码不符合当前的策略要求”。我可以在这里更正此问题:stackoverflow.com/a/43094873/9073437。设置修改后的密码策略后,一切正常。
Grandtour

7

对于Ubuntu 18.04和mysql版本14.14 Distrib 5.7.22,请按照以下步骤重置mysql密码。

第1步

sudo systemctl stop mysql

第2步

sudo systemctl edit mysql

此命令将在nano编辑器中打开一个新文件,您将使用该文件来编辑MySQL的服务替代。这些更改了MySQL的默认服务参数。该文件将为空,因此添加以下内容:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

第三步

sudo systemctl daemon-reload
sudo systemctl start mysql

第4步

sudo mysql -u root

第5步

FLUSH PRIVILEGES;

第6步

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

步骤7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

步骤8

sudo systemctl revert mysql

最后

sudo systemctl restart mysql

现在享受


我认为您错过了第2步的内容。这是不完整的。
卢卡斯·门德斯·莫塔·丰塞卡

6

回应rogerdpack的评论:如果您不知道MySQL根密码,并且不关心MySQL数据/设置,则可以重新安装它并按如下所示重置根密码:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

在安装过程中,您可以选择root用户的密码:

在此处输入图片说明


2
我希望我从这里开始,而不是浪费一个小时试图重设密码。
埃里克·海斯特兰德

3

如果您知道当前密码,则不必停止mysql服务器。打开ubuntu终端。使用以下命令登录到mysql:

mysql - username -p

然后输入您的密码。这将带您进入mysql控制台。在控制台内,键入:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

然后使用以下命令刷新特权:

> flush privileges;

这样就完成了。


2

当您PASSWORD()在要更改密码的系统上使用MySQL时,它会导致密码以明文[ source ]的形式出现在MySQL日志中。保持它们,其备份等安全性就像密码听起来对我来说就像噩梦一样,所以我更愿意按以下步骤进行操作:

  1. 本地计算机上,使用密码运行此命令:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    请注意前面的空间,以防止它出现在bash历史记录中(对于Ubuntu以外的其他发行版,这可能会有所不同-source)。

  2. 在服务器计算机上,执行以下命令以更改其MySQL根密码(用myhash第一个命令打印的密码哈希值代替):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. 或者,让我们有点偏执:在您的本地计算机上,使用清除您的终端屏幕clear并清除您的虚拟终端回滚,以隐藏出现在上面命令中的明文密码。


2

要更新“ root” Mysql用户密码,必须记住,您将需要具有超级用户权限。如果您具有超级用户特权,请尝试以下命令:

MySQL 5.7.6及更高版本

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5及更早版本

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass

2

您不需要所有这些。只需登录:

mysql -u root -p

然后根据mysql>提示更改当前用户的密码:

mysql> set password=password('the_new_password');
mysql> flush privileges;

1
这是最简单的方法!它与我一起使用mysql 5.7.21-0ubuntu0.17.10.1
Sergio Belevskij 19-4-24


1

如果您设置phpmyadmin为不提供密码或用户名就可以连接,则可以在本地计算机上解决该问题,而不是重置密码。通过启动检查了这一点mysqlapache等我已经xampp安装在我的本地机器。因此,启动xampp将启动所有必要的服务。现在向http://localhost/phpmyadmin我展示所有数据库。这确认您已将用户名和密码保存在phpmyadmin的配置文件中,该文件位于phpmyadmin安装位置。如果已xampp安装,phpmyadmin则可以在xampp安装的根文件夹中找到该文件夹。passwordconfig.inc.php文件中搜索单词。在那里您将找到passwordusername


1

如果通过提供的phpadmin gui部署在xampp上,则可以轻松更改mysql密码。

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)

1

对于mysql 5.6,此命令有效,您可以通过向导设置密码:

sudo dpkg-reconfigure mysql-server-5.6

我试过了,但是不起作用。该MySQL安装已升级到5.7.21,如果仍然需要运行mysql_upgrade,请使用--force
Vijaysinh Parmar,

1

您可以尝试以下一些步骤来重置mysql 5.7的root密码:

停止Mysql Service 1st

sudo /etc/init.d/mysql stop 

以root用户身份登录,无需密码 sudo mysqld_safe --skip-grant-tables

登录mysql终端后,您需要执行更多命令:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

重新启动mysql服务器后如果仍然遇到错误,则必须访问: 重置MySQL 5.7根密码Ubuntu 16.04



1

设置MySQL密码

  1. 停止MySQL数据库服务

sudo /etc/init.d/mysql停止

  1. 创建一个新的mysqld目录

须藤mkdir / var / run / mysqld /

  1. 赋予mysql用户访问权限

须藤chown mysql / var / run / mysqld /

  1. 以安全模式启动MySQL ...

须藤mysqld_safe --skip-grant-tables&

  1. 无需密码即可登录数据库服务器

须藤mysql -u root

  1. 使用默认的mysql数据库

使用mysql;

  1. 更改root密码

update user set authentication_string=PASSWORD("New_Passwore_Here") where 用户='root';

  1. 保存更改

    同花顺特权;出口;

  2. 停止MySQL safe_mode并启动MySQL默认服务

sudo /etc/init.d/mysql停止

sudo /etc/init.d/mysql启动

  1. 使用root新密码重新登录到MySQL数据库

须藤mysql -u root -p

***来源:https : //websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/


1

如果您知道“ root”用户密码,请使用该凭据登录到mysql。然后执行以下查询以更新密码。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

0

当更改/重置MySQL密码时,上面列出的以下命令无济于事。我发现进入终端并使用这些命令毫无意义。而是使用命令sudo停止所有操作。如果有帮助,请删除Windows的SYSTEM 32。


1
问题是关于ubuntu操作系统而不是Windows。Windows的DELETE SYSTEM 32是什么意思?
EhsanT

0

要重置或更改密码,请输入sudo dpkg-reconfigure mysql-server-X.X(XX是已安装的mysql版本,即5.6、5.7),然后将提示您设置新密码的屏幕,然后在下一步中确认密码,请稍等片刻。而已。


0

我必须在Ubuntu 16.04.1 LTS上走这条路线。它在某种程度上是上述其他一些答案的组合-但它们都没有帮助。我花了一个小时或更长时间尝试从MySql网站获取所有其他建议,以使SO上的所有内容都得到使用:

注意:虽然它显示了输入root用户的密码,但我没有原始密码,所以我只输入了相同的密码即可。用作新密码。

注意:仅/var/log/mysqld.log没有/var/log/mysql/error.log

另外请注意,这对我不起作用:
sudo dpkg-reconfigure mysql-server-5.7

也没有:创建
sudo dpkg-reconfigure --force mysql-server-5.5

MySQL服务目录。
sudo mkdir /var/run/mysqld

授予MySQL用户写入服务目录的权限。
sudo chown mysql: /var/run/mysqld

然后:

  1. 杀死当前的mysqld pid
  2. 使用sudo / usr / sbin / mysqld运行mysqld&
  3. 运行mysql_secure_installation的/ usr / bin / mysql_secure_installation

    输出

    root @ myServer:〜#/ usr / bin / mysql_secure_installation

    保护MySQL服务器部署。

    输入root用户密码:

    验证密码插件可用于测试密码并提高安全性。它检查密码的强度,并允许用户仅设置足够安全的密码。您要设置“验证密码”插件吗?

    按y | Y表示是,按其他任何键表示否:否使用现有密码作为root用户。更改root的密码?((按y | Y表示是,按其他任何键表示否):y

    新密码:

    重新输入新密码:默认情况下,MySQL安装有一个匿名用户,允许任何人登录MySQL,而不必为其创建用户帐户。这仅用于测试,以使安装过程更加顺利。在移入生产环境之前,应先删除它们。

    删除匿名用户?(按y | Y表示是,按其他任何键表示否):y成功。

    通常,仅应允许root从'localhost'连接。这样可以确保某人无法猜测网络中的root密码。

    禁止远程root登录?(按y | Y表示是,按其他任何键表示否):y成功。

    默认情况下,MySQL带有一个名为“ test”的数据库,任何人都可以访问。这也仅用于测试,应在移入生产环境之前将其删除。

    删除测试数据库并访问它?(按y | Y表示是,按其他任何键表示否):y

    • 删除测试数据库...成功。

    • 删除测试数据库的特权...成功。

    重新加载特权表将确保到目前为止所做的所有更改将立即生效。

    现在重新加载特权表?(按y | Y表示是,按其他任何键表示否):y成功。

    全做完了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.