目次

MySQL

公式サイト

公式リファレンス

参考にしたサイト

よく使うMySQLコマンド(Qiita)

インストール

参考サイト:CentOS7にMySQL8.0をインストール - Qiita

レポジトリのインストール
$ rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

最新のリポジトリはこちらで確認できる

レポジトリの確認

下記のコマンドを実行し、「mysql80-community/x86_64」が有効になっていることを確認する。(2021/12現在)

$ yum repolist all | grep mysql
インストール
$ yum install mysql-community-server
起動
$ systemctl start mysqld
自動起動
$ systemctl enable mysqld

初期設定

初期パスワードの確認

インストール時にrootユーザのパスワードがlogに出力される。

$ grep /var/log/mysqld.log
ログイン

下記コマンド実行後、先ほど確認したパスワードを入力する。

$ mysql -u root -p

※MySQL接続時に下記のエラーが出る場合がある。その場合、下記の手順を実行する。

mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost'

参考サイト:MySQLに「'Access denied for user 'root'@'localhost'」で接続できない場合の対処法 - 初めてのVPS構築

(エラー時)設定ファイルの編集

/etc/my.cnf」を開き、「[mysqld]」に「*skip-grant-tables」を追加する。

$ vi /etc/my.cnf
(エラー時)権限の反映

MySQLに接続し、設定ファイルで追記した設定を反映する。

$ mysql -u root -p
mysql> flush privileges;
rootユーザの新しいパスワードを設定
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '<新しいパスワード>';
MySQLのステータスの確認

動作しているバージョンが8.0.0以上になっていることを確認する。

mysql> status
(エラー時)設定を戻す

追記した「skip-grant-tables」をコメントアウトもしくは削除する

コマンド

ログイン

パスワード入力でのログイン
$ mysql -u <UserName> -h localhost -p

データインポート・エクスポート

エクスポート
$ mysqldump -u[ユーザ名] -p[パスワード] -r [出力データファイルパス] [データベース名]

オプションの指定で「–single-transaction」がある。

ダンプ中にテーブルをREADロックしないように付与する。

インポート
$ mysql -u[ユーザ名] -p[パスワード] [インポートするデータベース名] < [エクスポートファイル]

権限関連

登録されてるホストとユーザー名の確認
> select user, host from mysql.user;
特定のユーザーの権限確認
> show grants for 'UserName'@'HostName';
権限付与
> grant all privileges on <dbName>.* to <UserName>@<HostName>
権限削除
> revoke all on <dbName>.* from <UserName>@<HostName>
DBのバックアップ
$ mysqldump -u <MySQLユーザー名> -p<MySQLパスワード> <Redmineデータベース名> > <データ出力先ファイル名>

※「-p」の直後は半角スペースはいらない。

mysql -u <MySQLユーザー名> -p<MySQLパスワード> <Redmineデータベース名> < <ダンプデータファイル名>

※上記リカバリコマンドは、sqlファイルを実行するときも同じコマンドとなる。