Mysql数据库学习笔记Word文档格式.docx
《Mysql数据库学习笔记Word文档格式.docx》由会员分享,可在线阅读,更多相关《Mysql数据库学习笔记Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
![Mysql数据库学习笔记Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/3/387a277c-3d36-40f7-a126-92d575964af0/387a277c-3d36-40f7-a126-92d575964af01.gif)
查询mysql版本
select@@version;
三、权限管理
相关数据字典
select*frommysql.user;
select*frommysql.db;
select*frommysql.tables_priv;
select*frommysql.columns_priv
查看端口服务是否启动
Netstat–lntup|grep330
显示当前权限
showgrants
showgrantsforyf2@localhost;
授权例子,可以控制到列
grantselect(sex)onmafei.studtolx@localhost;
grantselect(name)onmafei.studtolx@localhost;
回收权限
revokeselect(sex,name)onmafei.studfromlx@localhost;
从指定主机指定用户上回收某一数据库的所有权限
revokeallprivilegesontest2.*from'
test4'
将某一数据库中的某一张表的增加,删除,修改,查询权限授于某一用户
grantselect,insert,delete,updateontest2.test2to'
回收某一用户的insert权限
revokeinsertontest2.test2from'
将某一用户下某一张表的某个列的查询权限授于某个用户
grantselect(i)ontest2.test22to'
grantselect(j,k)ontest2.test22to'
grantinsert(i)ontest2.test22to'
grantupdate(i)ontest2.test22to'
四、进程管理
去查看当前库的线程情况
SHOWPROCESSLIST;
SHOWFULLPROCESSLIST;
MYSQLADMIN–UROOT–PPROCESSLIST
MYSQLADMIN–UROOT–PPROCSTATUS
KILL<
进程号>
找出运行时间超过10秒的process的ID
SELECTIDFROMINFORMATION_SCHEMA.PROCESSLIST
WHERECOMMAND='
Query'
ANDTIME>
10;
过滤一些条件
WHERECOMMAND='
QUERY'
10
ANDID!
=CONNECTION_ID()
ANDUSER!
='
ROOT'
ANDCOMMAND!
BINLOGDUMP'
ANDSTATENOTREGEXP'
(SLAVE|RELAY|EVENT)'
生成杀进程命令至文件
SELECTCONCAT('
KILL'
ID,'
'
)
FROM
INFORMATION_SCHEMA.PROCESSLIST
WHERE
USER='
WEBS'
ANDCOMMAND='
ANDTIME>
10
INTO
OUTFILE'
/TMP/KILL_LIST.TXT'
五、显示日志
显示二进制日志
showbinlogevents;
慢查询日志
showvariableslike'
%slow%'
+---------------------------+-------
|Variable_name|Value
|log_slow_admin_statements|OFF
|log_slow_slave_statements|OFF
|slow_launch_time|2
|slow_query_log|OFF
|slow_query_log_file|C:
\wam
showvariableslike'
%long%'
+-------------------------------------------
|Variable_name
|long_query_time
常规日志
general_log=ON
general_log_file=/home/logs/mysql.log
六、日常命令
提示符设置
prompt\u@\h\d\r:
\m:
\s>
查看mysql版本
selectversion();
显示数据库状态
Status;
win7下mysql服务命令行启动与停止
(1)以管理员权限打开命令行窗口
MicrosoftWindows[版本6.1.7601]
版权所有(c)2009MicrosoftCorporation。
保留所有权利。
(2)停止mysql服务(mysql56是服务名)
C:
\Windows\system32>
netstopmysql56
MySQL56服务正在停止..
MySQL56服务已成功停止。
(3)启动mysql服务
netstartmysql56
MySQL56服务正在启动.
MySQL56服务已经启动成功。
命令行启动:
c:
\>
mysqld
安装windows服务:
mysqld–install<
servicename>
mysqld–remove<
Linux启动/停止/重启Mysql数据库的方法
a、启动方式
1、使用service启动:
servicemysqldstart(5.0版本是mysqld)
servicemysqlstart(5.5.7版本是mysql)
2、使用mysqld脚本启动:
/etc/init.d/mysqldstart
3、使用safe_mysqld启动:
safe_mysqld&
b、停止
servicemysqldstop
/etc/init.d/mysqldstop
3、mysqladminshutdown
c、重启
servicemysqldrestart
servicemysqlrestart(5.5.7版本命令)
/etc/init.d/mysqldrestart
连接mysql
mysql-uroot-p
mysql-utest-ptest
查询mysql有哪些数据库
showdatabases;
创建数据库
createdatabasezhdn;
连接数据库
usezhdn;
查看现在数据库中有什么表
showtables;
建表
createtablelx1(namevarchar(20),sexchar
(1));
显示表结构
describelx1(desclx1);
显示表的完整定义
showcreatetabletest.lx1;
显示表中列的属性
showcolumnsfromxs\G
显示表的数据字典信息
usetest
showtablestatus;
showtablestatuslike'
lx%'
插入记录
insertintolx1(name,sex)values("
mafei"
"
M"
);
用文本方式将数据装载如数据库中
\lx\lx1.txt(列值用tab隔开)
zhang5M
wangt6N
loaddatalocalinfile"
/lx/lx1.txt"
intotablelx1;
导入.sql文件
sourcec:
/lx/lx2.sql
删除表定义
droptablelx1;
清空表数据
deletefromlx1;
更新表数据
updatelx1setsex='
N'
wherename='
导出数据库
mysqldump-uroot-p--databaseszhdn>
mysql.zhdn
Enterpassword:
**********
导入数据库
mysql-uroot-pzhdn<
mysql.zhdn
sourceC:
\ProgramFiles\MySQL\MySQLServer5.6\bin\lx2.sql
开启事物
setautocommit=0;
M'
zhdn'
commit;
rollback;
查看存储引擎
showengines;
showcreatetablelx1;
如何察看当前连接数据库
方法一:
selectdatabase();
方法二:
方法三:
status;
查询系统变量
%char%'
远程连接
GRANTALLPRIVILEGESON*.*TO'
%'
IDENTIFIEDBY'
WITHGRANTOPTION;
flushprivileges;
showgrants;
mysql-h192.168.8.128-uroot-proot
高效载入MyISAM表
Altertabletest.load_datadisablekeys;
--loaddata
Altertabletest.load_dataenablekeys;
七、事务管理
查看数据库当前隔离级别
select@@tx_isolation;
查看是否自动提交
select@@autocommit;
相关系统表
innodb_trx
innodb_locks
innodb_lock_waits
innodb锁定超时设置
从MySQL5.5.X版本开始,可以动态修改该参数,该参数默认是50秒。
修改命令如下:
setinnodb_lock_wait_timeout=500;
八、备份恢复
备份数据库test
mysqldump-uroot-p-l-Fmafei>
\temp\mafei.dmp
从备份中恢复数据库test
mysql-uroot-pmafei<
使用
Mysqlbinlog
恢复自
Mysqldump
备份以来的binlog
mysqlbinlog
--start-position=2825
--stop-position=2939C:
\wamp\bin\mysql\mysql5.6.17\log\logbin.000003
>
\temp\mafeilog.dmp
九、数据复制
MasterIP:
192.168.8.128
SlaveIP:
192.168.2.129
双向复制,主主复制
9.1主库操作
步骤
主库操作(master)
1
showmasterstatus\G
***************************1.row***************************
File:
mysql-bin.000001
Position:
120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1rowinset(0.03sec)
2
grantreplicationslaveon*.*
torepl@'
192.168.8.129'
repl'
QueryOK,0rowsaffected(0.00sec)
3
changemasterto
master_host='
master_port=3306,
master_user='
master_password='
master_log_file='
mysql-bin.000001'
master_log_pos=120,
master_connect_retry=10;
4
startslave;
5
showslavestatus\G
6
--验证第一个数据复制流,在主动节点服务器上
createschemaifnotexistsverify_failover;
useverify_failover
createtablerpl_test(idserial)engine=InnoDB;
insertintorpl_test(id)values
(1),
(2),(3);
select*fromrpl_test;
+----+
|id|
|1|
|2|
|3|
7
--验证第二个数据复制流,在主动主节点服务器上
|11|
|22|
dropschemaverify_failover;
8
--应用程序验证,供正常访问和故障转移时测试使用
createschemabook3;
createuserapp@'
192.168.8.%'
grantinsert,update,delete,selectonbook3.*toapp@'
usebook3
createtableverify(idserial)engine=InnoDB;
mysql-h192.168.8.128-uapp-pmafei
mysql-h192.168.8.129-uapp-pmafei
grantcreatetableonbook3.*toapp@'
9.2从库操作
从库操作(slave)
grantreplicationslaveon*.*torepl@'
十、常用技巧
执行系统命令
systemls-l
修改提示符
promptMySQL:
\u@\h(\d)\r:
\s:
执行SQL脚本
Mysql>
sourcea.sql
使用tee保存运行结果到文件
teea.txt
….
notee
交互式执行
mysql-uroot-p-hslave2-Dzhijian-e"
select*frombaidulimit2"
登陆时设置提示符
有三种方法:
1、在Bash层修改MYSQL_PS1变量
exportMYSQL_PS1="
(\u@\h)[\d]>
"
2、MySQL命令行参数
mysql-uroot-p-hslave2-Dzhijian--prompt="
(\u@\h)[\d]>
"
3、配置文件/etc/f
[mysql]
prompt=(\\u@\\h)[\\d]\\r:
\\m:
\\s>
mysql.sh
mysqlHost=192.168.0.184
mysqlUser=root
mysqlPassword=abcde
mysqlDB=zhijian
mysql-h$mysqlHost-u$mysqlUser-p$mysqlPassword--databases$mysqlDB<
mysql.ini
mysql.ini
select*frombaidulimit2;
随机串
(root@slave1)[(none)]09:
26:
58>
selectUUID();
+--------------------------------------+
|UUID()|
|e2573732-18a9-11e6-b7a2-00505625843b|
30>
selectmd5(1234);
+----------------------------------+
|md5(1234)|
|81dc9bdb52d04dc20036dbd8313ed055|
+-----------