読者です 読者をやめる 読者になる 読者になる

MyController

WEB業界素人の僕がまた見返しそうなことのメモです。

初めてのMySQL最新版のインストール、コマンド一覧

MySQL

 

webkaru.net

 

 


Mysql centos6.7 apache2.2 最新のDLとインストールについて
順次読み替えるが、基本の考え方は同じはずで、
サイトにいってリポジトリrpmを5つ落とす。
その後shared以外インスト→sharedインストで終わり。
wget ●●
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.27-1.el6.x86_64.rpm
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.27-1.el6.x86_64.rpm
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.27-1.el6.x86_64.rpm
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.27-1.el6.x86_64.rpm
http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.27-1.el6.x86_64.rpm


yum install MySQL-{client,devel,server,shared-compat}-5.6.27-1.el6.x86_64.rpm
インストール時、
→sharedは必ずshared-compatを入れた後でないとだめ。
yum install MySQL-shared-5.6.27-1.el6.x86_64.rpm

vim
shiftかctrl + delete でカットになる。
ーーーーーー

 


WPインストール
https://ja.wordpress.org/wordpress-4.3.1-ja.tar.gz

 

mysql拡張インストール
※今入ってるのと同じバージョンにする
#yum --enablerepo=remi list
php-mysql.x86_64 5.4.31-1.el6.remi remi
(バージョン確認!)

#yum install --enablerepo=remi php-mysql.x86_64
(インストール開始!)
php56-php-mysqlnd.x86_64 5.6.15-1.el6.remi remi

うえで出てきたバージョンと併せるように下記コマンドで拡張インスト
yum install --enablerepo=remi --enablerepo=remi-php56 php-mysql

php.ini
⇒extension=msql.soコメントアウトされてるが、
これはこのまま書き変えなくていいかも。ちゃんと動いてるの確認。

 

 

 

Mysqlコマンド一覧

 

mysql起動

service mysql start

 

■mysqld自動起動設定

centos6

chkconfig mysql on

場所は/etc/init.d/mysql

 

centos7

systemctl enable mysqld

 

 

 

 ■MySQLバージョン確認

mysql --version

 

 

 ■インストール後の初期設定

 

qiita.com

 

■起動

service mysqld start

 

自動起動設定

mysql自動起動を有効にするには下記コマンド。

$ chkconfig mysqld on

再度確認すると設定が変更されているのがわかる。

$ chkconfig --list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

■初期文字コード設定 (文字化け防ぐため)

vi /etc/my.cnf で下記を追記

[mysqld]

default-storage-engine=InnoDB
innodb_file_per_table

character-set-server = utf8
collation-server = utf8_general_ci

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

default-character-set=utf8

[client]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

 

■設定反映

/etc/init.d/mysqld restart

 

■ログイン

mysql

 

■初期文字コード確認

show variables like "char%";

 

■DB削除

DROP DATABASE db_name;

 

 ■DB作成

CREATE DATABASE jcom_db;

※ちなみに作成するときはInnoDBを指定するのがいいっぽい。

トランザクションといって、DBにアクセスしている間は基本的にロックされ、

他の人がアクセス等出来ないような仕様。

そうすることで事故を防ぐ仕様であり、これが出来るのがInnoDBのみのようだ。

 

文字コードデフォルトを変えて、DB作り直しても変わらないときは

set character_set_database;

とか

set character_set_server = utf8;

これでいける。

 

■テーブル構造確認

DESC wp_users;

 

■テーブルのカラムを表示

show create table wp_posts;


■条件指定して検索

select * from wp_postmeta where meta_value like '%㎝%';
select * from wp_postmeta where meta_value like '%mm%';
meta_id , post_id, mete_key , meta_value
desc wp_postmeta;

select post_id from wp_posts where meta_value like '%㎝%';

 

 

カラム名からテーブル名を検索

select table_name, column_name from information_schema.columns where column_name = 'post_id' and table_schema = 'データベース名_db';

select meta_id from wp_commentmeta where meta_value like '%㎝%';

 

 

■外部ホストからの接続コマンド

# mysql -h linuxserver.jp -u user1 -p

役立つサイト
http://wiki.minaco.net/index.php?MySQL%2F%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%A8DB%E4%BD%9C%E6%88%90#nba5d76a


■ユーザー

全ユーザ確認

mysql> select host,user from mysql.user;


ユーザ追加

GRANT ALL PRIVILEGES ON データベース名_db.* TO ユーザ名@localhost IDENTIFIED BY 'password';

 

ユーザパスワード変更

set password for ユーザ名=PASSWORD('XXXXX');

 

rootパス変更

update mysql.user set password=password('XXXXX') where user = 'root';

 

ユーザ追加 外部IPアドレスを追加する(DBが外部ホストの場合)

kataokaユーザ が 192.168.1.* から xxxdb へアクセスできるように追加設定する。
mysql> grant all privileges on xxxdb.* to kataoka@"192.168.1.%"
-> identified by 'password' with grant option ;

 


kataoka@"%" 全てのホストからアクセス可能
kataoka@localhost サーバにログインしてからアクセス可能
kataoka@"192.168.1.12" IPアドレスが192.168.1.12のホストからアクセス可能
kataoka@"mydomain.co.jp" ドメインがmydomain.co.jpからのアクセスが可能

with grant option このユーザにGRANTコマンドを実行する権限を与える場合にこのオプションを追加する。 自分の場合、MySQLをよく知っている管理者等のユーザにこのオプションを付けている。

 

権限の確認

SHOW GRANTS FOR ユーザ名@localhost \G

 

権限表示(ユーザ指定しない)

show grants status;

 

権限付与(データベースに このユーザを)

grant all on データベース名.* to ユーザ名;

 

ユーザー削除

DELETE FROM mysql.user WHERE user='ユーザー名' AND host='localhost';
FLUSH PRIVILEGES;

 

こっちでいいかも

drop user 'user'@'localhost';

 

削除できたか確認

SELECT Host, User, Password FROM mysql.user WHERE user='ユーザー名';

 

■テーブル操作
構造確認

show columns from post;

 

テーブル構造を保ったまま中身を削除(auto incrementはリセットされる)

truncate table uriage;

 

テーブル構造を保ったまま中身を削除(auto incrementは保持される)

delete from uriage;

 

■フィールド
中身確認

select フィールド名 from テーブル名;

 

項目を追加

INSERT INTO DB名.テーブル名 (フィールド名, フィールド名)
VALUES ('入れる値1', '入れる値2');

 

MySQL dump バックアップ方法 

別サーバにデータベースをコピー。
db1(user1、password1) から
hostname サーバ(ユーザ名 hostuser)の db2(user2、password2)に

mysqldump -u user1 -p password1 -n db1 | ssh 変更してたらここにポート番号 hostuser@hostame mysql -u user2 -p password2 db2