7.1、myisam 读锁定
1、lock table t1 read
2、开启另一个mysql连接中断,接着去尝试:select * from t1
3、再insert、update和delete t1这张表,你会返现所有的数据都停留在终端上没有真正的去操作
4、读锁定对我们在做备份大量数据时非常有用
mysqldump -uroot -p123 test>test.sql
7.2、myisam 写锁定
1、lock table t1 write
2、打开另一个MySQL终端,尝试去select、insert、update和delete这张表t1,你会返现都不能操作,都会停留在终端上,只有等第一个终端操作完成,第二个终端才能真正执行 。
3、可见表的写锁定比读锁定更严格
4、一般情况下我们很少去显示的去对表进行read和write锁定的,myisam会自动进行锁定的。
7.3、服务器的优化
1、四中字符集问题
my.cnf配置文件 utf-8
查看各种字符集的校验字符集
mysql>show character set;
2、binary log 日志问题
show variables like “%bin%”;
log_bin 是否为ON
my.cnf配置文件中修改log-bin=mysql-bin
3、slow log慢日志查询问题
show variables like “%slow%”;
show variables like “%long%”;
log_slow_queries 设置为ON
开启和设置慢查询时间
vi /etc/my.cnf
log_slow_queries=slow.log
long_query_time=5
4、socket文件问题
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
skip-locking
重新启动一下mysql就能自动生成mysql.socket文件
mysqld_safe —user=mysql &
5、root 密码丢失
(1)service mysqld stop
(2)mysqld_safe —skip-grant-tables —user=mysql&
//跳过授权表mysql.user和mysql.db这些表
(3)mysql -uroot
(4)set password=password(“wei”);
用这一条语句结果报错,就是因为加了 —skip-grant-tables
mysql>update user set password=password(“wei”) where user=“root” and host=“localhost”;
(5)mysql>set password for root@localhost=password(“wei”);
(6)mysql>set password=password(“wei”);