Ubuntu系统使用apt安装的mysql在安装过程中没有给出输入密码的选项,而是给了一个默认的用户名和密码,那只能根据默认用户名和密码登录mysql后修改用户名和密码了.
查看默认用户名和密码
sudo cat /etc/mysql/debian.cnf
复制代码
//打开文件 /etc/mysql/debian.cnf查看默认用户名和密码
[client]
host = localhost
user = debian-sys-maint
password = 24j7HYTEqgPv0Ozg
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = 24j7HYTEqgPv0Ozg
socket = /var/run/mysqld/mysqld.sock
复制代码
根据默认的用户名和密码登录mysql(输入命令后把上面的密码粘贴进去)
$ mysql -udebian-sys-maint -p
在这一步可能会报如下的一个错误
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
遇到这个错误修改mysql配置文件将套接字指定为mysql默认分配的就行了,修改/etc/my.cnf,将socket的值改为/var/run/mysqld/mysqld.sock即可.
修改用户名和密码
登录mysql之后执行如下语句
mysql> update mysql.user set authentication_string=password(‘newpassword’) where user=‘root’;
刷新权限列表
mysql> flush privileges;
mysql> exit;
重启mysql
$ sudo service mysql restart
使用刚设置的root账号登录时可能会遇到如下问题
ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
产生这个问题的原因是Ubuntu默认安装的mysql使用的是UNIX auth_socket plugin
,意味着mysql用户名必须和登录当前Ubuntu系统的用户名一样才能登录,查看一下root用户使用的是什么类型的,先使用默认用户名和密码登录mysql,然后查看
复制代码
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
复制代码
显然root账户使用的是auth_socket,修改root账户使用mysql_native_password即可
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
重启mysql重新登录即可
$ sudo service mysql restart
问题:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’
今天执行mysql操作的时候出现了错误:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’问题
1:首先检查是否安装了mysql-server了
sudo apt-get install mysql-server to install mysql on ubuntu, 如果mysql-server已经存在了,那么在去尝试一下是否成功,如果还是这个错误的话那么就是文件/var/run/mysqld/mysqld.sock 不存在。
2:如果/var/run/mysqld/mysqld.sock文件不存在应该怎么办?
执行 vim /etc/mysql/my.cnf
将会看到内容如下:
The MySQL database server configuration file.
You can copy this to one of:
- “/etc/mysql/my.cnf” to set global options,
- “~/.my.cnf” to set user-specific options.
One can use all long options that the program supports.
Run program with --help to get a list of available options and with
–print-defaults to see which it would actually understand and use.
For explanations see
http://dev.mysql.com/doc/mysql/en/server-system-variables.html
* IMPORTANT: Additional settings that can override those from this file!
The files must end with ‘.cnf’, otherwise they’ll be ignored.
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
你的mysql的配置在/etc/mysql/mysql.conf.d目录下的mysqld.cnf文件,打开如下:
可以看到:bind-address = 127.0.0.1 socket = /var/run/mysqld/mysqld.sock 等信息
我的虚拟机是/var/run下面没有mysqld目录,执行下面命令,然后目录和sock文件就都有了
sudo mkdir -p /var/run/mysqld
sudo chown mysql /var/run/mysqld/
sudo service mysql restart
现在就都有了:
然后执行:mysql -u root -p 然后提示你输入密码,即可, 如下图所示:
就可以了
在Ubuntu上使用apt安装MySQL时,系统会创建一个默认用户和密码。本文详细介绍了如何查看默认的用户名和密码,通过`/etc/mysql/debian.cnf`文件找到这些信息。接着,指导用户如何使用默认凭证登录MySQL,解决登录时可能遇到的错误,以及如何修改root用户的密码。同时,针对出现的无法连接到MySQL服务器的问题,提供了检查和解决方法,包括创建必要的运行目录和socket文件。
3260

被折叠的 条评论
为什么被折叠?



