20190521のMySQLに関する記事は2件です。

Mysqlに接続できない時のTips

エラー内容

Railsの開発中に突然mysqlにアクセスを阻まれる。。orz

#入力コマンド
// mysqlの停止
$ sudo service mysql stop

// セーフモードでmysqlの起動
$ sudo mysqld_safe --skip-grant-tables &
[1] 17586

2019-05-21T07:14:21.943446Z mysqld_safe Logging to syslog.
2019-05-21T07:14:21.948065Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2019-05-21T07:14:21.951694Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

'/var/run/mysqld' for UNIX socket file don't exists.
どうやら「ソケットファイルがないよ」と言ったエラーが起きているらしい。

作ろう!

解決コマンド

$ sudo mkdir /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld

接続の確認ができる。
※ときどき、時間が解決する時があって困る。(時間が経つと、mysqlに接続できる)

参考:
MySQLサーバにログインできないとき
stackoverflow

もしかすると...(他に考えられること)

エラー画面
Can't connect to MySQL server on DBサーバー~~~~~
  • DB側でセキュリティグループの設定をしていてIP制限しているかも!
  • セキュリティグループで解放しているwifiに接続し直せばOK
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

コマンドラインでMySQL操作するときのコピペ用テンプレ

毎回ググって探すのがめんどくさいのでまとめました。

コマンド

接続

$ mysql -u ユーザ -p

データベース指定版

$ mysql -D データベース -u ユーザ -p

バックアップ取得(データベース単位)

$ mysqldump --default-character-set=utf8 --single-transaction -u ユーザ -p データベース > ファイル名.dump.sql

バックアップ取得(テーブル単位)

$ mysqldump -u ユーザ -p データベース テーブル > ファイル名.dump.sql

バックアップ復元

$ mysql -u ユーザー -p -D データベース < ファイル名.dump.sql

参考

SQL

ユーザ作成

CREATE USER 'ユーザ'@'接続元ホスト' IDENTIFIED BY 'パスワード';

ユーザ一覧取得

SELECT User, Host FROM mysql.user;

参考

ユーザ削除

DROP USER ユーザ@接続元ホスト;

参考

ユーザ権限付与

GRANT ALL ON データベース.* TO ユーザ@'接続元ホスト';
GRANT DELETE, INSERT ON データベース.テーブル TO ユーザ@'接続元ホスト';

ユーザ権限一覧取得

SHOW GRANTS FOR 'ユーザ'@'接続元ホスト';

参考

データベース作成

CREATE DATABASE データベース;

データベース一覧取得

SHOW DATABASES;

データベース接続

use データベース;

テーブル一覧取得

SHOW TABLES;

テーブル削除

DROP TABLE テーブル;

参考

テーブル定義確認

DESCRIBE テーブル;

インデックス定義取得

SHOW INDEX FROM テーブル;

参考

SELECT

標準

SELECT * FROM テーブル
WHERE 条件1
AND 条件2
\G

件数

SELECT COUNT(*) FROM テーブル;

INSERT

標準

INSERT INTO テーブル (
 カラム1
,カラム2
) VALUES (
 1989
,'平成'
);

UPDATE

標準

UPDATE テーブル SET
 カラム1 = 2019
,カラム2 = '令和'
WHERE 条件1
AND 条件2
;

DELETE

標準

DELETE FROM テーブル
WHERE 条件1
AND 条件2
;

条件

NULLと空文字を除外したい場合

SELECT * FROM テーブル
WHERE カラム2 != ''
\G

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む