甲骨人-MySQL網絡課-day02


                            
=======================================================================================
一、MySQL用戶及權限基本管理
1.1用戶是幹嗎用的?
Linux:用戶是用來,登錄系統、管理系統中的「對象」(文件)
MySQL:用戶是用來,登錄MySQL數據庫、管理數據庫對象(庫、表)mysql

1.2 用戶管理
1.2.1 用戶的定義
    user1@'白名單':user1這個用戶能從《哪一個地址》登陸到mysql
    (1)user1@'10.0.0.2' 
    (2)user1@'10.0.0.%'
    (3)user1@'%'
    (4)user1@'10.0.0.0/255.255.255.0'
    (5)user1@'aaa.com'
    (6)user1@'10.0.0.5%'
1.2.2 用戶的建立
     create user user1@'10.0.0.%' identified by '123';
     drop user user1@'10.0.0.%';
1.3 用戶權限定義
    grant  權限   on  對象  to 用戶  identified by '123';sql

權限:
ALL:包含了全部SQL語句均可以執行,除了grant revoke等受權相關
replication slave
SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE數據庫

grant SELECT,INSERT, UPDATE, DELETE, CREATE, DROP on vim

對象:
*.*         ------>全部庫和表
jiaguren.*  ------>單個庫下全部表
jiaguren.t1 ------>單庫下的單表服務器


grant all on *.*  to root@'10.0.0.%' identified by '123'; 
show grants for root@'10.0.0.%';
revoke drop on *.* from root@'10.0.0.%';
select user,host,authentication_string from mysql.user;
mysql -uroot -p123 -h 10.0.0.200
    
二、MySQL的鏈接管理session

2.1 MySQL支持的鏈接方式
socket:僅限於本地登陸
mysql -S /tmp/mysql.sock
 
tcpip:
mysql -uroot -p123 -h 10.0.0.200 -P3306多線程

2.2 mysql命令經常使用參數架構

-u  
-p 
-S 
-h 
-P 
-e
[root@temp ~]# mysql -uroot -p123 -h 10.0.0.200 -P3306 -e "select user,host,authentication_string from mysql.user;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost |                                           |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| root          | 10.0.0.%  | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
+---------------+-----------+-------------------------------------------+socket


三、MySQL的啓動和關閉
啓動過程
mysql.server  ------>mysqld_safe ------>mysqld
systemctl start mysqld   ---》  mysqld.service ---->mysqldtcp

四、MySQL數據庫配置文件詳解
4.1 mysql參數文件默認讀取順序
/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/local/mysql/etc/my.cnf 
~/.my.cnf     

以上文件中若是有重複的參數,以最後一個讀取的文件配置爲準。
因此咱們建議,對於單實例環境,只留一個配置文件。

本身定製參數文件位置,不讀取默認的文件
--defaults-file=/etc/my.cnf
4.2 參數文件基本結構
[server]    -----》全部服務器程序都應用如下配置
[mysqld_safe] 
[mysqld]

[client]    -----》全部的客戶端程序
[mysql] 
[mysqladmin] 
[mysqldump] 
socket=/tmp/mysql.sock 

4.3 參數文件簡單例子 
[mysqld]
basedir=/data/mysql 
datadir=/data/mysql/data 
socket=/tmp/mysql.sock 
log_error=/data/mysql/data/mysql.err
user=mysql
port=3306
server_id=6
log_bin=/data/mysql/mysql-bin
[mysql]
socket=/tmp/mysql.sock 

chown -R mysql.mysql /data/mysql
/etc/init.d/mysqld restart


五、多實例簡介及配置
單進程多線程的工做模式
分佈式架構


5.1 路徑規劃

mkdir /data/330{7..9}/data -p


5.2 建庫
mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/3307/data --user=mysql

mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/3308/data --user=mysql

mysqld --initialize-insecure --basedir=/data/mysql --datadir=/data/3309/data --user=mysql

 chown -R mysql.mysql /data/330*
 
5.3 配置文件準備

 cp /etc/my.cnf /data/3307/
 cp /etc/my.cnf /data/3308/
 cp /etc/my.cnf /data/3309/

vim /data/3307/my.cnf
[mysqld]
basedir=/data/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/data/mysql.err
user=mysql
port=3307
server_id=7
log_bin=/data/3307/mysql-bin

vim /data/3308/my.cnf 
[mysqld]
basedir=/data/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/data/mysql.err
user=mysql
port=3308
server_id=8
log_bin=/data/3308/mysql-bin

vim /data/3309/my.cnf 
[mysqld]
basedir=/data/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/data/mysql.err
user=mysql
port=3309
server_id=9
log_bin=/data/3309/mysql-bin


5.4  啓動並鏈接測試

 mysqld_safe --defaults-file=/data/3307/my.cnf &
 mysqld_safe --defaults-file=/data/3308/my.cnf &
 mysqld_safe --defaults-file=/data/3309/my.cnf &

 netstat -lnp|grep 330
 
 [root@temp data]# mysql -S /data/3307/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 7     |
+---------------+-------+
[root@temp data]# mysql -S /data/3308/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 8     |
+---------------+-------+
[root@temp data]# mysql -S /data/3309/mysql.sock -e "show variables like 'server_id'"
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 9     |
+---------------+-------+
[root@temp data]# 

=======================
第三章 mysql SQL語句
一、mysql接口自帶命令

1.一、\h 或 help 或 ?
1.二、\G
1.三、\T 或 tee
1.四、\c 或 CTRL+c
1.五、\s 或 status
1.六、\. 或 source
1.七、\u 或use

SQL: DDL DML DCL

相關文章
相關標籤/搜索