首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql根密码问题

问mysql根密码问题
EN

Ask Ubuntu用户
提问于 2017-07-01 14:05:32
回答 3查看 6.3K关注 0票数 2

我在Ubuntu 16.04 LTS上。我的mysql根密码是什么?如果我进去

代码语言:javascript
复制
mysql -u root -p

它要求我输入一个密码:我不知道,也没有密码不起作用。Mysql是预先安装的,所以我没有选择任何根密码.如果我再次安装它,用

代码语言:javascript
复制
sudo apt-get install mysql-server

它说mysql-server已经是最新版本(5.7.18-0ubuntu0.16.04.1)

有什么帮助吗暗示?谢谢。

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2017-07-01 17:19:32

有两种选择:

首先是清除mysql(除非您还没有数据库):

使用

代码语言:javascript
复制
apt-get purge mysql-server

清洗,然后

代码语言:javascript
复制
apt-get install mysql-server

简单地重新安装它。在安装时,应该向您询问密码。这是最简单和最快的方法,但是如果一些程序(如phpmyadmin )已经连接到现有的MySQL,那么它可能会出现问题,所以我建议您使用

或执行以下操作:停止使用MySQL服务器

代码语言:javascript
复制
sudo service mysql stop 

然后,启动安全模式

代码语言:javascript
复制
sudo /usr/bin/mysqld_safe --skip-grant-tables & 

选择localhost作为主机(在最后一个命令之后不会有命令提示符,所以在下一个命令中输入消息Starting mysqld daemon with databases from [...]之后)

代码语言:javascript
复制
mysql -h localhost

选择mysql with

代码语言:javascript
复制
USE mysql 

(用新密码替换YOURNEWPASSWORD!)类型

代码语言:javascript
复制
UPDATE mysql.user 
SET authentication_string=PASSWORD('new_password') 
WHERE user='root' AND host='localhost'; 

带着

代码语言:javascript
复制
quit 

并重新启动MySQL

代码语言:javascript
复制
sudo mysqladmin shutdown 
sudo service mysql start

编辑

该错误与您的MySQL套接字有关。首先,您希望找到系统上的所有套接字文件:

代码语言:javascript
复制
sudo find / -type s

您的套接字应该类似于以下内容

代码语言:javascript
复制
/var/lib/mysql/mysql.sock

(重要的是/mysql.sock部分)

一旦找到打开套接字的位置,将该行添加或编辑到

代码语言:javascript
复制
/etc/my.cnf 

带有套接字文件的路径的文件:

放

代码语言:javascript
复制
[mysqld]

刚开始的时候

代码语言:javascript
复制
socket=/path/to/your/socket/

在文件的末尾。

现在再试一下2选项。如果它不起作用,继续这个解释。

如果这不能解决您的问题,有些东西会覆盖my.cnf位置,这将导致在my.cnf文件所指示的位置找不到一个套接字。然后,当您尝试运行mysql命令行客户端时,它将读取my.cnf以找到套接字,但它不会找到它,因为它偏离了服务器创建套接字的位置。因此,除非您关心套接字驻留在何处,否则只需将my.cnf更改为匹配即可。

要解决这个问题,首先关闭mysqld进程

代码语言:javascript
复制
pkill -9 mysqld

完成此操作后,您可能需要在/var/run/mysqld/中查找pid文件并删除它。

确保您的套接字上的权限能够使用户mysqld正在运行的任何用户都可以对其进行读写。一个简单的测试是打开它进行完整的读/写,看看它是否仍然有效:

chmod 755 /var/run/mysqld/mysqld.sock

资料来源:

https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html

https://ubuntu.flowconsult.at/en/mysql-set-change-reset-root-password/

https://stackoverflow.com/questions/11990708/error-cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysq

票数 1
EN

Ask Ubuntu用户

发布于 2017-07-01 14:30:14

Ask Ubuntu用户

发布于 2017-11-12 17:02:40

Ubuntu16.04和MySQL5.7.20

我没有发现ADDB的指示完全有帮助。在搜索之后,我发现了以下内容(选项2的一个小重写):

代码语言:javascript
复制
sudo /etc/init.d/mysql stop
    sudo mkdir /var/run/mysqld/
    sudo chown mysql /var/run/mysqld/
    sudo mysqld_safe --skip-grant-tables &
    mysql -uroot
    use mysql;
    update user set authentication_string=PASSWORD("NEW_PASSWORD_GOES_HERE") where User='root';
    flush privileges;
    quit;
    sudo /etc/init.d/mysql stop
    sudo /etc/init.d/mysql start    

参考资料:http://rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts/

我最喜欢的方法是:

我使用了Mysql用户“debian”(一个根等价物)。密码可以在/etc/mysql/debian.cnf中找到。在登录到Mysql之后,该用户将更改任何Mysql用户的密码。

代码语言:javascript
复制
USE mysql
SELECT root@localhost;
ALTER USER user IDENTIFIED BY 'auth_string';
ALTER USER 'Name_of_user_to_be_modified'@'Hostname (ie:localhost)' IDENTIFIED BY 'NEW_PASSWORD';
flush privileges;
exit;

参考资料:https://serverfault.com/questions/9948/what-is-the-debian-sys-maint-mysql-user-and-more

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/931001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档