LinuxサーバーMySQLのインストールと作成ユーザーと権限
11052 ワード
mysqlの配備
2つのlinuxシステムで、ビジネスバージョンはRedhatに代表され、オープンソースコミュニティ版はdebianに代表されます.
1.Ubuntu(debian系)
1.1インストール
1.2 rootパスワードの変更
userとpasswordを覚えて
3.上陸
4.パスワードの変更
5.再起動
6.リモートアクセスrootの構成
2.CentOS(Redhat系)
その他の問題はUbuntuを参照
3.mysqlのインストール後、一般ユーザーがログインできない問題解決(ubuntu 18.04)
Ubuntu18.04にmysqlをインストールする
その後、通常のユーザーshellの下でrootユーザー名を使用してMySQLにログインできないことがわかりました.rootのshellに切り替えるとパスワードなしでMySQLにログインできます.
結果はこうでした
MySQLのrootユーザーのpluginが修正されたことを発見して、mysql_に変えるしかありませんnative_パスワードを使用してMySQLにログインするにはpasswordを使用します.次のコマンドを使用してpluginを変更し、MySQLのrootアクセスパスワードを設定します.
終了後、通常のユーザーshellに切り替えてMySQLを再起動すると、rootユーザーと前のステップで設定したrootパスワードを使用してMySQLにログインできます.
4.mysqlリモートnavicatが接続できない問題
注記bind-address=127.0.0.1
mysqlにログイン
5.mysqlユーザーの追加と承認
5.1追加
第一の方法
username=作成されたユーザー名
host=ユーザーがどこのホストにログインできるかを指定します.ここでlocalhost=127.0.0.1は本機に限定され、リモートログインしたい場合は「%」に変更します.
password=新しいパスワード
第2の方式
(注意:MySQL 5.7 mysql.userテーブルにpasswordフィールドがなくauthentication_stringに変更されました)
これにより、testパスワード:1234というユーザーが作成されます.
5.2授権
フォーマット:grant権限onデータベース.*toユーザー名@ホストidentified by「パスワード」;
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;