一般ユーザーでmysql -u root -pする方法

Linux

ぬにょす(挨拶)。

かねてよりUbuntuのMariaDBで sudo mysql しないと接続できない問題を抱えておりましたが、Railsを自動デプロイするにあたり一般ユーザーで mysql -u root ができないとDBやDBユーザーを作成できません。

この問題は、MariaDBのmysql.Userテーブルを更新することで解決できました。

$ sudo mysql
MariaDB [(none)]> use mysql;

MariaDB [mysql]> select user,plugin from user;
+------+-------------+
| user | plugin |
+------+-------------+
| root | unix_socket | <- こいつが諸悪の根源です
+------+-------------+
1 row in set (0.00 sec)

MariaDB [mysql]> update user set plugin='' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

MariaDB [mysql]> select user,plugin from user;
+------+--------+
| user | plugin |
+------+--------+
| root | |
+------+--------+
1 row in set (0.00 sec)

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

コメント