centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课...

centos  LAMP第四部分mysql操作  忘记root密码  skip-innodb 配置慢查询日志 mysql常用操作  mysql常用操作 mysql备份与恢复   第二十二节课

 

 

mysql用的哪个my.cnf,如果都有就用后面的

查找顺序 /etc/mycnf ---> /etc/mysql/mycnf ---> $BASEDIR/my.cnf --->$DATADDIR/my.cnf ----> ~/ .my.cnf

 

 

1. 忘记root密码
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数 skip-grant

重启数据库服务,这样就可以进入数据库不用授权了  service mysqld restart

修改相应用户密码  mysql -uroot 

use mysql;

update user set password=password('your password') where user='root';

flush privileges;

最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务

 

2. skip-innodb   我们可以增加这个参数不使用innodb引擎。

 

 

3. 配置慢查询日志
#log_slow_queries = /path/to/slow_queries
#long_query_time = 1

 

 

4. mysql常用操作
查看都有哪些库 show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;
当前是哪个用户 select user();
当前库 select database();
创建库 create database db1;
创建表 create table t1 (`id` int(4), `name` char(40));
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000;
查看mysql队列 show processlist; show full processlist
创建普通用户并授权 grant all on *.* to user1 identified by '123456';
grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';
grant all on db1.* to 'user3'@'%' identified by '231222';insert into tb1 (id,name) values(1,'aming');
更改密码,也可以用grant 修改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;
查询 select count(*) from mysql.user; select * from mysql.db; select * from mysql.db where host like '10.0.%';
插入 update db1.t1 set name='aaa' where id=1;
清空表 truncate table db1.t1;
删除表 drop table db1.t1;
删除数据库 drop database db1;
修复表 repair table tb1 [use frm];

 

 

5. mysql备份与恢复
备份 mysqldump -uroot -p123456 db1 >1.sql
恢复 mysql -uroot -p123456 db1 <1.sql
只备份一个表 mysqldump -uroot -p123456 db1 tb1 > 2.sql
只备份表结构 mysqldump -uroot -p123456 -d db1 tb1 > 2.sql
只恢复一个表 跟恢复整个库一样 mysql -uroot -p123456 db1 <1.sql
备份时指定字符集 mysqldump -uroot -p123456 --default-character-set=utf8 db >1.sql
恢复也指定字符集 mysql -uroot -p123456 --default-character-set=utf8 db < 1.sql

 

 

 

 

 

 


mysql


-e 参数直接在shell里面执行sql语句

mysql -uroot -p123456  -e"use mysql;select * from user where user='root'\G;"

 

 


没有指定端口和ip的连接方式就是使用socket连接方式

mysql -uroot -p123456

 


查看socket文件位置

ps aux|grep mysql

 


指定socket文件位置三种方式
1、mysql -uroot -p123456 -S /var/lib/mysql/mysql.sock
2、my.cnf
3、编译的时候

 

使用TCP/IP登录mysql

mysql -uroot -p123456  -h127.0.0.1  -p3306

 

 

mysql命令行不支持tab键补全!!

 

mysql命令历史文件
位置:在root用户根目录有一个.mysql_history文件,退出mysql命令行才会记录命令历史

不记录mysql命令历史

cat /root/.mysql_history >/dev/null

 

 


为防止乱码,在创建表的时候要指定字符集或者在my.cnf里指定默认字符集,例如utf8

vi /etc/my.cnf //添加下面内容

[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8

 

 


赋予权限并建立用户
grant 所有权限 ALL ON 库名.表名 to 'user1'@'127.0.0.1' identified by '123456';

*.*所有的库和所有的表
只用%的话可以表示任意IP

grant all on *.* to user1 identified by '123456';

 

 

更改全局变量,重启mysql失效

set global table_open_cache=128;

 

 

备份数据库的时候指定字符集,防止乱码,安装zabbix的时候特别需要设置
--default-character-set=utf8
还原的时候也可以加上
--default-character-set=utf8


备份
锁表不让写

lock tables `pre_forum_post` write;

插入数据

insert into xx;

解锁

unlock tables;

 


表可以重新进数据

 

mysql命令行里面不区分大小写

f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值