LinuxサーバーMySQLのインストールと作成ユーザーと権限

11052 ワード

mysqlの配備
2つのlinuxシステムで、ビジネスバージョンはRedhatに代表され、オープンソースコミュニティ版はdebianに代表されます.
1.Ubuntu(debian系)
1.1インストール
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev

1.2 rootパスワードの変更
cd etc/mysql
sudo vim debian.cnf
[client]
host     = localhost
user     = debian-sys-maint
password = Hy1Q8e5dUA4S2Bgb
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = Hy1Q8e5dUA4S2Bgb
socket   = /var/run/mysqld/mysqld.sock
~                                                           

userとpasswordを覚えて
3.上陸
mysql -udebian-sys-maint -pHy1Q8e5dUA4S2Bgb


4.パスワードの変更
mysql> use mysql;
mysql> update user set authentication_string=password('123456') where user='root';
flush privileges;
mysql> quit;


5.再起動
sudo service mysql restart


6.リモートアクセスrootの構成
mysql> update user set host='%' where user='root' AND host='localhost';
mysql>flush privileges;

2.CentOS(Redhat系)
#  rpm
wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
#  rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
#  mysql
yum install mysql-community-server
#  mysql   
systemctl start mysqld
#  mysql    
systemctl enable mysqld
systemctl daemon-reload
#  root  
grep 'temporary password' /var/log/mysqld.log
#  
mysql -u root -p
#    
set password for 'root'@'localhost'=password('    ');
#  mysql
systemctl restart mysqld

その他の問題はUbuntuを参照
3.mysqlのインストール後、一般ユーザーがログインできない問題解決(ubuntu 18.04)
Ubuntu18.04にmysqlをインストールする
sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

その後、通常のユーザーshellの下でrootユーザー名を使用してMySQLにログインできないことがわかりました.rootのshellに切り替えるとパスワードなしでMySQLにログインできます.
sudo su
mysql
select user, plugin from mysql.user;
123

結果はこうでした
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.session    | mysql_native_password |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
12345678

MySQLのrootユーザーのpluginが修正されたことを発見して、mysql_に変えるしかありませんnative_パスワードを使用してMySQLにログインするにはpasswordを使用します.次のコマンドを使用してpluginを変更し、MySQLのrootアクセスパスワードを設定します.
update mysql.user set authentication_string=PASSWORD('12345678'), plugin='mysql_native_password' where user='root';

flush privileges;
123

終了後、通常のユーザーshellに切り替えてMySQLを再起動すると、rootユーザーと前のステップで設定したrootパスワードを使用してMySQLにログインできます.
4.mysqlリモートnavicatが接続できない問題
cd etc/mysql/mysql.conf.d
vim  mysqld.cof

注記bind-address=127.0.0.1
mysqlにログイン
mysql -uroot -p
Enter password
mysql>use mysql;
mysqk>select host,user from user;
#      
mysql>update user set host='%' where user='root';
#  
mysql>flush priviliges;

5.mysqlユーザーの追加と承認
5.1追加
第一の方法
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
#eg
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

username=作成されたユーザー名
host=ユーザーがどこのホストにログインできるかを指定します.ここでlocalhost=127.0.0.1は本機に限定され、リモートログインしたい場合は「%」に変更します.
password=新しいパスワード
第2の方式
use mysql;
insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

(注意:MySQL 5.7 mysql.userテーブルにpasswordフィールドがなくauthentication_stringに変更されました)
これにより、testパスワード:1234というユーザーが作成されます.
5.2授権
フォーマット:grant権限onデータベース.*toユーザー名@ホストidentified by「パスワード」;
#    #
grant all privileges on *.* to my@localhost identified by '123456';
#    #
grant insert,update,delete,select on *.* to mytest@localhost;
#    #
flush privileges;