1. 程式人生 > >linux(centos)上安裝mysql教程,為需要遠端登入的使用者賦予許可權

linux(centos)上安裝mysql教程,為需要遠端登入的使用者賦予許可權

最近把之前學生時代的win server換成了linux(centos)系統,因為win對於部署一些專案時候比較麻煩,直接入正題

1、準備階段

我使用xshell工具管理伺服器,相應下載和安裝自行百度

2、安裝

接下來主要介紹Linux下使用yum安裝MySQL,以及啟動、登入和遠端訪問MySQL資料庫。

2.1安裝mysql客戶端

yum install mysql
在這裡插入圖片描述在這裡插入圖片描述

如何出現下面這個,說明,已經安裝了mysql
在這裡插入圖片描述

2.2安裝mysql服務端

yum install mysql-server

yum install mysql-devel
在CentOS7上用上面的命令安裝mysql服務端時,出現了以下的提示:
在這裡插入圖片描述

原因是:

CentOS7帶有MariaDB而不是MySQL,MariaDB和MySQL一樣也是開元的資料庫,您可以使用yum -y install mariadb-server mariadb命令安裝

解決方案:

如果必須要安裝MySQL,首先必須新增mysql社群repo通過輸入命令:

sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

在這裡插入圖片描述

最後使用像安裝MySQL的常規方法一樣輸入上面兩行命令安裝既可

2.3啟動和停止

1、資料庫字符集設定,mysql配置檔案/etc/my.cnf中加入default-character-set=utf8

2、啟動mysql服務

service mysqld start或者/etc/init.d/mysqld start

在這裡插入圖片描述

3、檢查是否成功啟動了mysql
在這裡插入圖片描述

4、停止mysql

service mysqld stop

5、開機啟動

chkconfig -add mysqld
chkconfig --list | grep mysql*     //檢視開機啟動設定是否成功
 mysqld 0:關閉 1:關閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關閉

2.4登入

1、建立root管理員

mysqladmin -u root password 123456

1.1建立普通使用者

create user 使用者名稱 identified by '密碼';

例:create user xiaogang identified by ‘123456’;

2、登陸

mysql -u root -p輸入密碼即可。

3、忘記密碼

service mysqld stop
 
mysqld_safe --user=root --skip-grant-tables
 
mysql -u root
 
use mysql
 
update user set password=password("new_pass") where user="root";
 
flush privileges;

2.5遠端登陸

開放防火牆的埠號

1、為需要遠端登入的使用者賦予許可權

如何給使用者分配許可權

grant 許可權 on 資料庫.資料表 to '使用者' @ '主機名';

(1)支援root使用者允許遠端連線mysql資料庫

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

在這裡插入圖片描述

注意:root就擁有了所有的許可權

(2)新建使用者遠端連線mysql資料庫

grant all on *.* to [email protected]'%' identified by '123456' with grant option; 
flush privileges;

允許任何ip地址(%表示允許任何ip地址)的電腦用admin帳戶和密碼(123456)來訪問這個mysql server。
注意admin賬戶不一定要存在。

注意:admin使用者就擁有了所有的許可權

(3)讓 saucxs有查詢 weekly資料庫week_week 表的許可權;

grant select on weekly.week_week to 'saucxs'@'%';

(4)讓saucxs有增刪改查weekly資料庫所有表的資料許可權

grant select,insert,update,delete on weekly.* to 'saucxs'@'%';

注意:這個只有刪除表中資料增刪改查,而不是表的增刪改查

下面是我要進行建表操作,被拒絕了
在這裡插入圖片描述

(5)給電腦IP為10.163.225.87的使用者saucxs分配可對資料庫weekly的week_week表進行select,insert,update,delete,create,drop等操作的許可權,並設定口令為123456。這樣做的目的是隻有在指定的電腦指定IP上才能登陸這個資料庫賬號。

grant select,insert,update,delete,create,drop on weekly.week_week to [email protected];

注意:這個create和drop 是指的資料庫表的建立和刪除,而不是資料表中資料新增和刪除。

(6)如何收回mysql分配給別的使用者的許可權,一般指有root使用者才具有該許可權

revoke 許可權 on  資料庫.資料表 from '使用者'@'主機名';

舉個例子,回收查詢功能,這樣查詢功能就失效了

revoke select on weekly.* from 'saucxs'@'%';

(7)檢視埠

show global variables like 'port'

在這裡插入圖片描述

centos7.x已經把3306埠開放了,並且不需要開啟防火牆,直接用就行