1.開啓MySQL服務
#systemctl start mysql
2.檢測端口是否運行
#lsof -i :3306
#netstat -lntup |grep 3306
3.爲MySQL設置密碼或者修改密碼
設置密碼
# mysqladmin -uroot passowrd "NEWPASSWORD"
更改密碼
MySQL [(none)]> use mysql;
MySQL [(mysql)]> update user set passowrd = PASSWORD('newpassword') where user = 'root';(5.7版本以下)
mysql> update user set authentication_string=password("123456") where user='root'; (5.7以上版本)
mysql>flush privileges
msyql 5.7以上版本修改默認密碼命令
MySQL [(mysql)]>alter user 'root'@'localhost' identified by 'root' ;
4.登陸MySQL數據庫
#mysql -uroot -p
5.查看當前數據庫的字符集
MySQL [mysql]> show create database mysql;
6.查看當前數據庫版本
#mysql -V
#mysql -uroot -ppassowrd -e "use mysql;select version();"
MySQL [mysql]> select version();
7.查看當前登錄的用戶
MySQL [mysql]> select user();
8.創建GBK字符集的數據庫wang,並查看已建庫完整語句
MySQL [mysql]>create database mingongge DEFAULT CHARACTER SET GBK COLLATE gbk_chinese_ci;
8.通過表創建用戶wangwang,使之擁有增查插權限。
MySQL [mysql]> insert into user(host,user,password,Select_priv,Insert_priv,Update_priv) values ('localhost','wangwang',password('redhat'),'Y','Y','Y');
9.增加wangwang用戶刪除權限。
MySQL [mysql]> update user set Delete_priv='Y' where user='wangwang';
MySQL [mysql]> flush privileges;
MySQL [mysql]select * from user where user='wangwang'\G;
9.創建用戶wang,使之可以管理數據庫wang
MySQL [mysql]>grant all on wang.* to 'wang'@'localhost' identified by 'redhat';
10.查看創建的用戶wang擁有哪些權限
MySQL [mysql]>show grants for wang@localhost;
11.查看當前數據庫裏有哪些用戶
MySQL [mysql]>select user from mysql.user;
12.進入wang數據庫
MySQL [mysql]> use wang;
13.創建一innodb GBK表test,字段id int(4)和name varchar(16)
MySQL [mysql]> create table test (
id int(4),
name varchar(16)
)ENGINE=innodb DEFAULT CHARSET=gbk;
14.查看建表結構及表結構的SQL語句
MySQL [wang]> desc test;
或者
MySQL [mysql]> show columns from user;
MySQL [wang]> show create table test\G;
15.插入一條數據“1,wang1”
MySQL [wang]> insert into test values('1','wang1');
16.再批量插入2行數據 “2,wang2”,“3,wang3”
MySQL [wang]> insert into test values('2','wang2'),('3','wang3');
17.查詢名字爲wang1的記錄
MySQL [wang]>select * from test where name = 'wang1';
18.把數據id等於1的名字更改爲wangwang1
MySQL [wang]> update test set name='wangwang1' where id='1';
19.在字段name前插入age字段,類型tinyint(2)
MySQL [wang]> alter table test add age tinyint(2) after id;
MySQL [wang]> update test set age='16' where name='wangwang1';
20.不退出數據庫,完成備份wang數據庫
MySQL [wang]> system mysqldump -uroot -predhat -B wang >/root/wang_bak.sql
21.刪除test表中的所有數據,並查看
MySQL [wang]> delete from test;
MySQL [wang]> select * from test;
22.刪除表test和mingongge數據庫並查看
MySQL [wang]> drop table test;
MySQL [wang]> show tables;
MySQL [wang]> drop database wang;
MySQL [(none)]> show databases;
23.不退出數據庫恢復以上刪除的數據
MySQL [(none)]> system mysql -uroot -predhat</root/wang_bak.sql;
24.把庫表的GBK字符集修改爲UTF8
MySQL [wang]> alter database wang default character set utf8;
MySQL [wang]> alter table test default character set utf8;
25.把id列設置爲主鍵,在Name字段上創建普通索引
MySQL [wang]> alter table test add primary key(id);
MySQL [wang]> create index wangindex on test(name(16));
26.在字段name後插入手機號字段(shouji),類型char(11)
MySQL [wang]> alter table test add tel char(11) after name;
MySQL [wang]> alter table test add tel char(11);
#默認就是在最後一列後面插入新增列
27.所有字段上插入2條記錄(自行設定數據)
MySQL [wang]>insert into test values('5','23','li','13700000001'),('6','26','zhao','13710000001');
28.在手機字段上對前8個字符創建普通索引
MySQL [wang]> create index TEL on test(tel(8));
29.查看創建的索引及索引類型等信息
MySQL [wang]> show index from test;
MySQL [wang]> show create table test\G;
#下面的命令也可以查看索引類型
MySQL [wang]> show keys from test\G;
30.刪除Name,tel列的索引
MySQL [wang]> drop index TEL on test;
MySQL [wang]> drop index wangindex on test;
31.對Name列的前6個字符以及手機列的前8個字符組建聯合索引
MySQL [wang]> create index lianhe on test(name(6),tel(8));
32.查詢手機號以137開頭的,名字爲zhao的記錄(提前插入)
MySQL [wang]> select * from test where tel like '137%' and name='zhao';
33.查詢上述語句的執行計劃(是否使用聯合索引等)
MySQL [wang]> explain select * from test where tel like '137%' and name='zhao'\G;
34.把test表的引擎改成MyISAM
MySQL [wang]> alter table test engine=MyISAM;
35.收回wang用戶的select權限
MySQL [wang]> revoke select on wang.* from wang@localhost;
36.刪除wang用戶
MySQL [wang]> drop user wang@localhost;
37.刪除wang數據庫
MySQL [wang]> drop database wang;
38.使用root關閉數據庫
# mysqladmin -uroot -predhat shutdown
39.MySQL密碼丟了,請找回?
#mysqld_safe --skip-grant-tables
#mysql -uroot -p -e "use mysql;update user set passowrd = PASSWORD('newpassword') where user = 'root';flush privileges;"
40:MySQL主從複製原理及配置主從步驟
原理如下:
主庫開啓binlog功能並授權從庫連接主庫,從庫通過change master得到主庫的相關同步信息,然後連接主庫進行驗證,主庫IO線程根據從庫slave線程的請求,從master.info開始記錄的位置點向下開始取信息,同時把取到的位置點和最新的位置與binlog信息一同發給從庫IO線程,從庫將相關的sql語句存放在relay-log裏面,最終從庫的sql線程將relay-log裏的sql語句應用到從庫上,至此整個同步過程完成,之後將是無限重複上述過程
步驟如下:
1、主庫開啓binlog功能,並進行全備,將全備文件推送到從庫服務器上
2、show master status\G 記錄下當前的位置信息及二進制文件名
3、登陸從庫恢復全備文件
4、執行change master to 語句
5、執行start slave and show slave status\G