SSH 等コマンドライン使える MySQL のデータベースをでよく使うコマンドメモ


ユーザーを作成して、データベース作成、そのユーザーに権限を与える

mysql -h [MySQLサーバーアドレス] -u [MySQL管理者ユーザー名] -p
CREATE USER 'concrete5'@'127.0.0.1' IDENTIFIED BY 'パスワード';
CREATE USER 'concrete5'@'localhost' IDENTIFIED BY 'パスワード';
CREATE DATABASE [データベース名] DEFAULT CHARACTER SET=utf8;
GRANT ALL PRIVILEGES ON [データベース名].* TO 'concrete5'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON [データベース名].* TO 'concrete5'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

既存のデータベースを空白にする

データベースを削除して、同じ名前で作って、同じユーザーに権限を与える

mysql -h [MySQLサーバーアドレス] -u [MySQL管理者ユーザー名] -p
DROP DATABASE [データベース名];
CREATE DATABASE [データベース名] DEFAULT CHARACTER SET=utf8;
GRANT ALL ON [データベース名].* to [追加で権限を与えたいMySQLユーザー名];
FLUSH PRIVILEGES;

mysql -h 127.0.0.1 -u root -p
DROP DATABASE concrete5db;
CREATE DATABASE concrete5db DEFAULT CHARACTER SET=utf8;
GRANT ALL ON concrete5db.* to concrete5user;
FLUSH PRIVILEGES;

mysqldump コマンドを使ってテーブル名を取得してそのままテーブルを削除するコマンドに渡す

mysqldump  -h [[MySQLサーバーアドレス] -u [MySQL管理者ユーザー名] -p --add-drop-table --no-data [データベース名] | grep ^DROP | mysql -u [MySQL管理者ユーザー名] -p  -h [MySQLサーバーアドレス] [データベース名]

mysqldump -u root -p  -h localhost --add-drop-table --no-data concrete5db | grep ^DROP | mysql -u root -p  -h localhost concrete5db

既存のデータベースをコピーする

複製先のデータベースを新規作成して、mysqldump と mysql コマンドを使ってデータを複製

mysql -h [MySQLサーバーアドレス] -u [MySQL管理者ユーザー名] -p
CREATE DATABASE [複製先データベース名] DEFAULT CHARACTER SET=utf8;
GRANT ALL ON [複製先データベース名].* to [追加で権限を与えたいMySQLユーザー名];
FLUSH PRIVILEGES;
exit;
mysqldump -h [MySQLサーバーアドレス] -u [MySQL管理者ユーザー名] -p [複製元データベース名] | mysql -h 127.0.0.1 -u [MySQL管理者ユーザー名] -p [複製先データベース名]

mysql -h 127.0.0.1 -u root -p
CREATE DATABASE concrete5duplicate DEFAULT CHARACTER SET=utf8;
GRANT ALL ON concrete5duplicate.* to cocnrete5user;
FLUSH PRIVILEGES;
exit;
mysqldump -h 127.0.0.1 -u root concrete5original | mysql -h 127.0.0.1 -u root concrete5duplicate

宣伝 & クレジット

この記事が役に立ったら、「 CMS は concrete5 が一番」と頭の中で10回唱えてください。