MySQL官網下載下傳位址 http://dev.mysql.com/downloads/mysql/
Mysql安裝
(1)# rpm -qa | grep mariadb
解除安裝mariadb
(2) # rpm -e --nodeps mariadb-libs
将下載下傳的安裝包拷貝到centos中解壓
(3) # tar -xf mysql-5.7.28-1.el6.x86_64.rpm-bundle.tar
在安裝目錄下執行rpm安裝
# rpm -ivh mysql-community-common-5.7.28-1.el6.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.28-1.el6.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.28-1.el6.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.28-1.el6.x86_64.rpm
可能遇到的其他依賴和問題
# yum install net-tools -y
# yum install perl -y
安裝server可能遇到 檢查簽名
解決辦法
# rpm -ivh mysql-community-server-5.7.28-1.el6.x86_64.rpm --force --nodeps
修改/etc/my.cnf檔案,在[mysqld]節點下添加如下配置
[mysqld]
explicit_defaults_for_timestamp=true //顯示指定預設值為timestamp類型的字段
檢視datadir的值:
datadir=/var/lib/mysql
初始化資料庫
# mysqld --initialize --user=mysql
檢視生成的臨時密碼
# cat /var/log/mysqld.log
啟動mysql服務
# service mysqld start
登入mysql
# mysql -uroot -p (輸入臨時密碼)
修改root使用者密碼
mysql> set password = password("000000");
檢視字元編碼
show variables like "%char%";
永久修改字元編碼
[client]
default-character-set=utf8
[mysql]
character_set_server=utf8
collation-server=utf8_general_ci
修改已有庫和表的編碼
mysql> alter database test character set 'utf8';
Query OK, 1 row affected (0.01 sec)
mysql> alter table testconvert to character set 'utf8';
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0
MySQL的使用者管理
(1)MySQL的使用者管理在 mysql庫中的user表中
需要了解的列: Host,User, authentication_string等, 可通過 desc user 檢視user表結構
(1)相關指令
指令 | 描述 | 備注 |
create user zhang3 identified by '123123'; | 建立名稱為zhang3的使用者,密碼設為123123; | |
select host,user,password,select_priv,insert_priv,drop_priv from mysql.user; | 檢視使用者和權限的相關資訊 | |
set password =password('123456') | 修改目前使用者的密碼 | |
update mysql.user set authentication_string=password('123456') where user='li4'; | 修改其他使用者的密碼 注意:mysql 5.7 通過authentication_string表示密碼列 | 所有通過user表的修改,必須用flush privileges;指令才能生效 |
update mysql.user set user='li4' where user='wang5'; | 修改使用者名 | |
drop user li4 | 删除使用者 | 不要通過delete from user u where user='li4' 進行删除,系統會有殘留資訊保留。 |
修改使用者密碼
update mysql.user set authentication_string=password('123456') where user='li4';
注意:所有通過user表的修改,必須用flush privileges;指令才能生效
遠端工具通路
目前root使用者對應的host值為localhost,意味着隻允許本機連接配接
mysql> update user set host='%' where user = 'root';
需要将host的值修改為%,表示允許所有遠端通過 TCP方式的連接配接
MYSQL的權限管理
授予權限
grant 權限1,權限2,…權限n on 資料庫名稱.表名稱 to 使用者名@使用者位址 identified by ‘連接配接密碼’ | 該權限如果發現沒有該使用者,則會直接建立一個使用者。 示例: grant select,insert,delete,drop on atguigudb.* to li4@localhost ; 給li4使用者用本地指令行方式下,授予atguigudb這個庫下的所有表的插删改查的權限。 |
grant all privileges on . to joe@'%' identified by '123'; | 授予通過網絡方式登入的的joe使用者 ,對所有庫所有表的全部權限,密碼設為123. |
收回權限
show grants | 檢視目前使用者權限 | |
revoke [權限1,權限2,…權限n] on 庫名.表名 from 使用者名@使用者位址 ; | 收回權限指令 | |
REVOKE ALL PRIVILEGES ON mysql.* FROM joe@localhost; | 收回全庫全表的所有權限 | |
REVOKE select,insert,update,delete ON mysql.* FROM joe@localhost; | 收回mysql庫下的所有表的插删改查權限 |
提示:權限收回後,必須使用者重新登入後,才能生效。