たまに使えるMySQL操作

1631 ワード

データベースエンコーディング
データベースエンコーディングの表示
use xxx
show variables like 'character_set_database';

データベースエンコーディングの切り替え
alter database xxx CHARACTER SET gb2312;

自己増加IDの変更
テーブル作成時にNから自増IDを設定:
CREATE TABLE TABLE_1 (
        ID INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
        NAME VARCHAR(5) NOT NULL 
    )
AUTO_INCREMENT = 100;

自増IDをデフォルト値から開始させますが、このコマンドでパケットレコードが空になります.
TRUNCATE TABLE table1

userテーブルの自増IDの設定は123456から
alter table users AUTO_INCREMENT=123456;

リモートログインできません
プロファイル内のアドレスが0.0.0.0に変更されてもリモートでログインできない場合は、一般的にデータベース内のアカウント情報を変更する必要があります.
認証ユーザー(推奨)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

直接修正user
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';

以上の方法の操作が完了したら、FLUSH PRIVILEGES;権限のリフレッシュを実行する必要があります.
リモート接続速度が遅い
リモートでMySQLに接続するのに時間がかかる場合があり、ローカルでMySQLに接続するのは正常です.このような問題の主な原因は、デフォルトインストールのMySQLがDNSの逆解析を開いたことである.
MySQL DNS逆解析
MySQLは接続要求を受信と、クライアントのipを取得し、mysql.userの権限記録をよりよく一致させる(hostnameで定義されているものもある).mysqlサーバにdnsサーバが設定、クライアントipがDNS上に対応するhostnameがない場合、このプロセスは遅く、接続待ちとなる.
DNS逆解析の無効化
MySQLのプロファイル/etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]を追加skip-name-resolveを追加するとDNS逆解析が無効になり、リモート接続の速度が速くなります.また、このように構成するとMySQLのライセンステーブルでホスト名を使用できなくなり、IPしか使用できなくなる.