解決 MariaDB無密碼就可以登入的問題

2022-02-01 08:02:46 字數 4765 閱讀 3478

困擾了很久的問題,,

使用apt-get來安裝mysql,安裝好之後發現安裝的是 mariadb,如下,無需密碼既可以登入了。即使使用mysqladmin設定好密碼,用密碼登入可以,不用密碼登入也可以

1 root@ubuntu:/etc/mysql# mysql

2welcome to the mariadb monitor. commands end with ; or \g.

3 your mariadb connection id is

354 server version: 10.0.31-mariadb-0ubuntu0.16.04.2 ubuntu 16.04

5, oracle, mariadb corporation ab and others.

78 type '

help;

' or '\h'

for help. type '

\c' to clear the current input statement.

第一看看my.conf有沒有skip-grant-tables,跳過密碼驗證

過濾了下沒有

1 root@ubuntu:~# cd /etc/mysql/

2 root@ubuntu:/etc/mysql# pwd

3 /etc/mysql

4 root@ubuntu:/etc/mysql# ls -l

5 總用量 36

6 drwxr-xr-x 2 root root 4096 12月 7

18:05

conf.d

7 -rw------- 1 root root 277 12月 7

17:31

debian.cnf

8 -rw------- 1 root root 317 12月 7

17:05 debian.cnf-5.7

9 -rwxr-xr-x 1 root root 1426 7月 1

04:26 debian-start

10 -rw-r--r-- 1 root root 869 7月 1

04:26

mariadb.cnf

11 drwxr-xr-x 2 root root 4096 12月 7

18:08

mariadb.conf.d

12 lrwxrwxrwx 1 root root 24 12月 7

17:18 my.cnf -> /etc/alternatives/my.cnf

13 -rw-r--r-- 1 root root 839 1月 22

2017

my.cnf.fallback

14 -rw-r--r-- 1 root root 682 2月 4

2017

mysql.cnf

15 drwxr-xr-x 2 root root 4096 12月 7

18:08

mysql.conf.d

16 root@ubuntu:/etc/mysql# grep "

skip-grant-tables

" -r

17 root@ubuntu:/etc/mysql#

看看my.cnf裡面是不是把密碼寫進去了,查詢了相關.cnf檔案去看了看也沒有

1 root@ubuntu:~# find / -name "

*.cnf

"2 /usr/share/ssl-cert/ssleay.cnf

3 /usr/share/dovecot/dovecot-openssl.cnf

4 /usr/lib/ssl/openssl.cnf

5 /etc/ssl/openssl.cnf

6 /etc/alternatives/my.cnf

7 /etc/mysql/my.cnf

8 /etc/mysql/mariadb.cnf

9 /etc/mysql/conf.d/mysqldump.cnf

10 /etc/mysql/conf.d/mysql.cnf

11 /etc/mysql/mariadb.conf.d/50-mysqld_safe.cnf

12 /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

13 /etc/mysql/mariadb.conf.d/50-client.cnf

14 /etc/mysql/mariadb.conf.d/50-server.cnf

15 /etc/mysql/debian.cnf

16 /var/lib/dpkg/alternatives/my.cnf

17 root@ubuntu:~#

不過有個小發現,

1  vim /etc/mysql/debian.cnf

2 # automatically generated for debian scripts. do not touch!

3[client]

4 host =localhost

5 user =root

6 password =

7 socket = /var/run/mysqld/mysqld.sock

8[mysql_upgrade]

9 host =localhost

10 user =root

11 password =

12 socket = /var/run/mysqld/mysqld.sock

13 basedir = /usr

1415

看了說明是以上由指令碼生成,不要改動,

16 雖然這樣寫,我也去改了下,加上密碼,重啟還是不行

最後的最後,,,,去google了很久,終於有發現了,是使用者外掛程式問題。

參見這裡:

第一我去跟安裝正常的mysql來比較下,如下

1

正常mysql

2 mysql> select user, plugin from mysql.user where plugin = '

mysql_native_password';

3 +-----------+-----------------------+

4 | user | plugin |

5 +-----------+-----------------------+

6 | root | mysql_native_password |

7 +-----------+-----------------------+

88 rows in

set (0.00 sec)

1

不正常的

23 mariadb [(none)]> select user, plugin from

mysql.user;

4 +------+-------------+

5 | user | plugin |

6 +------+-------------+

7 | root | unix_socket |

8 +------+-------------+

91 row in

set (0.00 sec)

看到這裡應該發現問題了,按照正常的修改就行了

如下:

1

sudo service mysql stop

2 sudo mysqld_safe --skip-grant-tables

3進去mysql執行如下命令:

4 mariadb [(none)]> update mysql.user set authentication_string = password('

mypassword

'), plugin = '

mysql_native_password

' where user = '

root

' and host = '

localhost';

5 mariadb [(none)]>flush privileges;

6驗證:

7 mariadb [(none)]> select user, plugin from

mysql.user

8 ->;

9 +------+-----------------------+

10 | user | plugin |

11 +------+-----------------------+

12 | root | mysql_native_password |

13 +------+-----------------------+

141 row in

set (0.01

sec)

1516 先殺死mysql kill -9

pid17

啟動:18 sudo service mysql start

最後驗證下:需要密碼了

root@ubuntu:~# mysql

error

1045 (28000): access denied for user '

root

'@'localhost

' (using

password: no)

root@ubuntu:~#

解決 MariaDB無密碼就可以登入的問題

困擾了很久的問題,使用apt get來安裝mysql,安裝好之後發現安裝的是 mariadb,如下,無需密碼既可以登入了。即使使用mysqladmin設定好密碼,用密碼登入可以,不用密碼登入也可以 1 root ubuntu etc mysql mysql 2 welcome to the mari...

解決MariaDB無密碼 可登入

官方對此的解釋為 即通過系統認出是root直接認證,但是如果想換成必須用密碼就需要改了這個模式 select user,plugin from user 結果如果為 unix socket 就需要修改模式 按照官網的說明修改就行 alter user root localhost identifie...

不用程式設計就可以做好的事情

這兩天做了三件事,都是貌似要寫乙個軟體而我找到了代替的方案,一行 也不用寫。其二是,有人要統計一萬多份調查問卷,問卷內容很簡單 20個人中選10個,在選中的人名字下面打勾。原來我曾經寫了乙個程式幫他們做更複雜的錄入輔助兼統計,用到delphi c s模式,firebird做後台資料庫。這次的因為相對...