Centos 7MYSQL5.7のインストールとアンインストール
1つは、インストールされているMySqlをアンインストールする
1.1rpmビューのインストール
rpm -qa | grep -i mysql
1.2rpmアンインストール
上にあるMySQLをクリアします
rpm -e mysql57-community-release-el7-9.noarch
rpm -e mysql-community-server-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.17-1.el7.x86_64
rpm -e mysql-community-common-5.7.17-1.el7.x86_64
rpm -e mysql-community-client-5.7.17-1.el7.x86_64
cd /var/lib/
rm -rf mysql/
1.3残りのアイテムをクリアする
删除mysql的所有配置
rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
剩余配置检查
chkconfig --list | grep -i mysql
chkconfig --del mysqld
根据上面的列表,删除 ,如:mysqld
2、MySqlをインストールします
2.1Yumソースをダウンロードする
現在、centosにはデフォルトでyumソースがなく、yumはMariaDBをインストールするため、最初にyumソースを構成する必要があります。
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
2.2Yumソースをインストールする
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
2.3MySqlをインストールする
yum install -y mysql-community-server
2.4mysqlを起動します
mysqlの基本的な構成手順(vim /etc/my.cnf)
character-set-server=utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# 设置时区为东八区
default-time_zone = +8:00
# 密码策略
validate_password_policy=0
validate_password_length=1
# 不区分大小写
lower_case_table_names=1
# 慢查询
slow_query_log=on
long_query_time=3
slow_query_log_file=/var/lib/mysql/VM_0_12_centos-slow.log
log_queries_not_using_indexes=on
# 缓存
query_cache_type=on
query_cache_size=102400
centos7には、serviceコマンドはありませんが、systemctlコマンドが使用されます。
systemctl start mysqld
ステータスを確認する
systemctl status mysqld
2.5データベースにログインし、データベースのパスワードを変更します
mysql5.7の新機能の1つは、初期化中にカスタムパスワードが生成されることです。その後、このパスワードを見つけて、ログイン時に入力する必要があります。パスワードの入力時には表示されませんのでご注意ください。
倘若没有/var/log/mysqld.log,可以先删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
再启动mysql
systemctl start mysqld #启动MySQL
パスワードを見つける:赤いボックスはパスワードです:
grep 'temporary password' /var/log/mysqld.log
データベースにログインします。ここでは、-pの後にパスワードを入力する必要はなく、Enterキーを押してからパスワードを入力します。パスワードを変更した後、ログインして-pの直後にパスワードを追加します。
変更されたパスワードが単純すぎる場合、変更されず、大文字と小文字の文字と数字を追加するだけであることに注意してください。このような複雑なパスワードを設定したくない場合は、次のルールを変更できます。
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
パスワードを変更する:
SET PASSWORD = PASSWORD('123456');
リモートログインを設定します(rootがリモートアクセスを許可しないことをお勧めします。新しいmysqlユーザーを作成してください)
現在、ローカルでログインしてツールを使用してアクセスすることはできません。2つのことを行う必要があります。1つはクラウドサーバーのポート3306を開くこと、もう1つはリモートアクセスを構成することです。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
今すぐパスワードを設定してリモートでログインし、flushコマンドを使用して構成をすぐに有効にします。それでも失敗する場合は、データベースの再起動を試みることができます。
その他のオプション:
#vim /etc/my.cnf(注:My.iniはWindowsで変更されます)
ドキュメントでmysqldを検索し、テキストセクション[mysqld]を見つけます。[mysqld]の後の任意の行に「skip-grant-tables」を追加して、パスワード検証プロセスをスキップします(変更が完了したらこの行をコメントアウトします)。
mysql5.7: update user set password=password('123456') where user='root' and host='localhost';
mysql8: update mysql.user set authentication_string='123456' where user='root';
数据库8.0已经没有password这个字段, password字段改成了authentication_string, 所以需要将password改成authentication_string。
2.6いくつかの簡単な構成を変更する
yumによってインストールされたMySql構成ファイルは、デフォルトで/ etcフォルダーにあります。
vim /etc/my.cnf
[mysqld]の下にセミコロンなしで追加します。
文字セット:utf-8ではなくutf8であることに注意してください。
character-set-server=utf8
現時点では、「char%」などのshow変数を使用します。文字セットがutf8であることがわかります。SQLはgroupby
ステートメントをサポートしています。
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
タイムゾーンを東馬地区に設定する
default-time_zone = '+8:00'
最後に、データベースを再起動して、構成を有効にします。
systemctl restart mysqld
その他の構成
# 不区分大小写
lower_case_table_names=1
#慢查询
slow_query_log=on
long_query_time=3
slow_query_log_file=/var/lib/mysql/VM_0_12_centos-slow.log
log_queries_not_using_indexes=on
# 缓存
query_cache_type=on
query_cache_size=102400
遅いクエリの基本構成
- slow_query_log開始停止テクノロジー低速クエリログ
- slow_query_log_fileは、低速クエリログのストレージパスとファイルを指定します(デフォルトでは、データファイルと一緒に配置されます)
- long_query_timeは、低速クエリログを記録するためのSQL実行時間を指定します(単位:秒、デフォルトは10秒)
- log_queries_not_using_indexesインデックスなしでSQLをログに記録するかどうか
- log_outputログが保存される場所[テーブル] [ファイル] [ファイル、テーブル]
遅いクエリ分析
遅いクエリログレコードがたくさんあり、そこから遅いクエリログを見つけるのは簡単ではありません。一般的に、最適化が必要なSQLステートメントをすばやく見つけるためにいくつかのツールが必要です。2つの遅いクエリ補助ツールを以下に紹介します。
Mysqldumpslow(pt_query_digest )
一般的に使用される低速クエリログ分析ツールは、クエリ条件を除いて同じSQLを要約し、パラメータで指定された順序で分析結果を出力します。
文法:
mysqldumpslow -sr -t 10slow-mysql.log
-s順序(c、t、l、r、at、al、ar)
c:合計時間
t:合計時間
l:ロック時間
r:合計データ行
at、al、ar:t、l、rの平均[例:at =合計時間/合計回数]
-t topは、結果出力として過去数日を取ることを指定します
mysqldumpslow -sr -t 10 /var/lib/mysql/VM_0_12_centos-slow.log
ユーザー権限
通常のユーザーを作成し、
GRANT OPTION付きの「mypassword」
によって識別される「myuser」@「%」に*。*のすべての特権を許可します。
上記のすべては、すべての権限(読み取り、書き込み、クエリ、削除など)を
意味します。2つの*があり、前面*はすべてのデータベースを意味し、背面*はすべてのテーブルを意味します。
で識別され、その後にパスワードが続き、一重引用符で囲まれます。ここで、user1はlocalhost上のuser1を指します。
ネットワーク上の他のマシンのユーザーを承認します
。oyc1。*のすべてを「111222」で識別される「oyc1」@「192.168.33.128」に付与します。
上記では、ユーザーとホストのIPは、いずれか1つの引用符で囲まれています。それらの間に@記号があり、IPを%に置き換えて、すべてのホストを示すことができます。
MySQLユーザー権限を表示する
現在のユーザー(自分)のアクセス許可を 表示する:許可を表示する
;
他のMySQLユーザーのアクセス許可を表示する:
oyc @localhostの許可を表示する;
MySQLユーザーに付与された権限を取り消します。
取り消しの構文はgrantに似ていますが、キーワード「to」を「from」に変更するだけ
です。すべてのONoyc1。*を「oyc1」@「%」に付与します。oyc1。*のすべてを「oyc1」@から
取り消します。 % ';
Mysqlのインストール場所
//(show variables like "character_sets_dir%")
character_sets_dir : /usr/share/mysql/charsets/
2.7起動の設定
systemctl enable mysqld
systemctl daemon-reload