インストール
参考 修正
ソフトウェアマネージャー からでは ver5.7 になります。
2018/11/4 では 8.0.13 がインストールできます
https://stackoverflow.com/questions/27154067/could-not-select-ok-in-mysql-apt-config-ubuntu-14-04
正式 マニュアル
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install
http://zaka-think.com/linux/ubuntu/mysql-workbench/
https://dev.mysql.com/downloads/repo/apt/
MySQL APTリポジトリの追加
sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
再度バージョンの確認画面になったら終了を選択
コマンド画面に戻るので
sudo apt-get update
APTを使用したMySQLのインストール
sudo apt-get install mysql-server
root 権限で入らないとエラーになります。
root 権限で実行(下図は端末ウィンドウ自体をスパーユザーにした場合)
sudo を用いて実行した場合
SHOW DATABASES;
を実行してエラー発生
Server version: 8.0.12 にUPされるとなるみたい(プログラムはUPしたがデータベースがUPしていないため起こる現象のようです)
下記を参考にこコマンドを実行
mysql_upgrade -u root -p
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
root権限でなくローカル権限で接続する
参考:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
plugin FROM auth_socket → mysql_native_password を変更する
$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> SELECT User, Host, plugin FROM mysql.user;
クエリでわかるように、rootユーザーはauth_socketプラグインを使用しています
では変更してみます
$ sudo mysql -u root # I had to use "sudo" since is new installation mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> FLUSH PRIVILEGES; mysql> exit;$ service mysql restart
現状ではパスワード設定されていません
# mysql -u root mysql> update mysql.user set password=password('root用の任意パスワード') where user = 'root'; mysql> flush privileges; ← 変更を反映 mysql> exit;
設定したパスワードでログインできるかを確認します。
# mysql -u root -p Enter password:
だが
update mysql.user set password=password('root用の任意パスワード') where user = 'root';
でエラーがは発生する
ERROR 1054 (42S22): Unknown column 'password' in 'field list’
参考
https://maysatsuki.wordpress.com/2016/01/07/mysql%E3%80%8Cerror-1054-42s22-unknown-column-password-in-field-list%E3%80%8D/
リストがなくなっている
mysql> SELECT user, host, authentication_string FROM mysql.user;
で確認すると root のリストが無い
パスワードの設定下記の例は root_password に設定
mysql> SET PASSWORD= 'root_password';
mysql> SELECT user, host, authentication_string FROM mysql.user;