superxuezhazha

Ubuntu系统使用apt安装的mysql在安装过程中没有给出输入密码的选项,而是给了一个默认的用户名和密码,那只能根据默认用户名和密码登录mysql后修改用户名和密码了.

查看默认用户名和密码

    //打开文件 /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

 

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-04-13
  • 2022-12-23
  • 2022-12-23
  • 2021-04-12
  • 2021-11-05
  • 2022-12-23
猜你喜欢
  • 2022-01-22
  • 2021-07-23
  • 2022-12-23
  • 2021-12-16
  • 2022-01-12
  • 2021-09-22
  • 2021-06-24
相关资源
相似解决方案