Centos系統下卸載、安裝MySQL及用戶的創建、授權和使用(詳細。。。。)

由於經常使用linux系統,並且大數據環境搭建中經常會使用到mysql,不像windows系統下的安裝,今天有點空寫一篇,下面我給大家演示一遍。

主要有三部分內容:

1、MySQL的卸載

2、MySQL的安裝

3、MySQL用戶的授權和用戶創建、刪除

一、MySQL的卸載(如果是僅僅安裝MySQL的用戶可以跳過這一部分)

a)查看系統中以rpm包安裝的mysql:

[hadoop@master ~]$ rpm -qa | grep -i mysql
MySQL-client-5.5.59-1.el7.x86_64
MySQL-server-5.5.59-1.el7.x86_64

b)卸載mysql

[hadoop@master ~]$ sudo rpm -e MySQL-client-5.5.59-1.el7.x86_64
[hadoop@master ~]$ sudo rpm -e MySQL-server-5.5.59-1.el7.x86_64

現在可以使用rpm -qa | grep -i mysql來查看系統是否還有rpm安裝的mysql包

c)關閉mysql服務

[hadoop@master ~]$ systemctl stop mysql

d)刪除分散mysql文件夾

whereis mysql 和sudo find / -name mysql

當然每個人的情況都不一樣,但刪除的方式是一樣的、、哈哈哈 可以使用rm -rf 刪除上面查找的mysql文件夾

清空相關mysql的所有目錄以及文件,可以使用我的方式刪除

sudo rm -rf /var/lib/mysql /usr/lib64/mysql /var/lib/mysql/mysql /usr/lib64/mysql
sudo rm -rf /usr/lib/mysql /usr/share/mysql /usr/my.cnf

通過以上幾步,mysql應該已經完全卸載乾淨了

二、MySQL的安裝

a) 下載mysql rpm安裝包

https://dev.mysql.com/downloads/mysql/5.7.html#downloads
MySQL-server-5.5.59-1.el7.x86_64.rpm
MySQL-client-5.5.59-1.el7.x86_64.rpm

 b) 安裝libaio 需要libaio的依賴

sudo yum install libaio

c)rpm安裝

sudo rpm -ivh MySQL-server-5.5.59-1.el7.x86_64.rpm 
sudo rpm -ivh MySQL-client-5.5.59-1.el7.x86_64.rpm 

d)運行和配置mysql

systemctl start mysql 啓動mysql服務
安裝完mysql-server 會提示可以運行mysql_secure_installation。運行mysql_secure_installation會執行幾個設置:
  a)爲root用戶設置密碼
  b)刪除匿名賬號
  c)取消root用戶遠程登錄
  d)刪除test庫和對test庫的訪問權限
  e)刷新授權表使修改生效

通過這幾項的設置能夠提高mysql庫的安全。建議生產環境中mysql安裝這完成後一定要運行一次mysql_secure_installation,詳細步驟請參看下面的命令:

複製代碼 代碼如下:

[root@server1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):<–初次運行直接回車
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] <– 是否設置root用戶密碼,輸入y並回車或直接回車
New password: <– 設置root用戶的密碼
Re-enter new password: <– 再輸入一次你設置的密碼
Password updated successfully!
Reloading privilege tables..
… Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] <– 是否刪除匿名用戶,生產環境建議刪除,所以直接回車
… Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] <–是否禁止root遠程登錄,根據自己的需求選擇Y/n並回車,建議禁止
… Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] <– 是否刪除test數據庫,直接回車
- Dropping test database…
… Success!
- Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] <– 是否重新加載權限表,直接回車
… Success!
Cleaning up…
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

e) 啓動MySQL

mysql -uroot -p

三、MySQL用戶的授權和用戶創建、刪除

默認情況下制定在本地使用root的賬號密碼進行連接,遠程連接不了,需要配置權限
#(執行下面的語句 *.*:所有庫下的所有表 %:任何IP地址或主機都可以連接)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
FLUSH PRIVILEGES; //刷新權限

此刻,就可以在其他地方遠程連接mysql數據庫了。由於我們經常會創建一個新用戶來使用數據庫

1) 查看所有用戶的權限列表

mysql> show grants;

2)查看指定用戶的權限信息

mysql> show grants for 'root'@'localhost';
mysql> show grants for 'root'@'%';

3)創建新用戶(需要在root的方式登陸下創建

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

說明:

  • username:你將創建的用戶名
  • host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
  • password:該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器

例子:

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';

4)授權(需要在root的方式登陸下創建

命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

說明:

  • privileges:用戶的操作權限,如SELECTINSERTUPDATE等,如果要授予所的權限則使用ALL
  • databasename:數據庫名
  • tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*

例子:

GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
GRANT ALL ON maindataplus.* TO 'pig'@'%';

注意:

用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

 5)設置與更改用戶密碼

命令:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是當前登陸用戶用:

SET PASSWORD = PASSWORD("newpassword");

例子:

SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

6)撤銷用戶權限

命令:

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

說明:

privilege, databasename, tablename:同授權部分

例子:

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意:

假如你在給用戶'pig'@'%'授權的時候是這樣的(或類似的):GRANT SELECT ON test.user TO 'pig'@'%',則在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令並不能撤銷該用戶對test數據庫中user表的SELECT 操作。相反,如果授權使用的是GRANT SELECT ON *.* TO 'pig'@'%';REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤銷該用戶對test數據庫中user表的Select權限。

具體信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看。

7)刪除用戶

命令:

DROP USER 'username'@'host';

 

權限參考:https://www.cnblogs.com/sos-blue/p/6852945.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章