Mysql相关操作
1. 如何更改系统环境变量PATH?
vim /etc/profile 加入 PATH=$PATH:/usr/local/mysql/bin
2. 默认mysql安装好后,并没有root密码,如何给root设置一个密码?
mysqladmin -uroot password 'newpass'
3. 如何更改root密码?
mysqladmin -uroot -poldpasswd password 'newpasswd'
4. 如何连接远程的mysql服务器?
mysql -uusername -ppass -hhostip -Pport
5. 如何查看当前登陆mysql的账户?
select user();
6. 在mysql命令行下,怎么切换某个库?
use databasename;
7. 如何查看一个表都有哪些字段?
desc tablename;
8. 如何查看某个表使用的是哪种数据库引擎?
show create table\G;
9. 如何查看当前数据库有哪些队列?
show processlist;
10. 当有很多队列时,如何查看有哪些慢查询?
看慢查询日志,慢查询日志在/etc/my.cnf中设置方法是增加:
log_slow_queries = logname
long_query_time = 1 //查询时间超过1s会记录日志
11. 如何查看当前mysql的参数值?
show variables;
12. 如何不重启mysql服务,更改某个参数?
set global xxx = xxx; 比如
set global wait_timeout = 10;
13. 用什么工具备份数据库?请区分myisam引擎和innodb引擎两种存储引擎的备份。
mysqldump 备份数据库,mysqldump可以备份两种引擎的数据。但是innodb引擎的数据使用xtrabackup工具更快
14. 简单描述myisam和innodb引擎的区别。
innodb不支持fulltext类型索引;
innodb不保存表的行数;
myisam的数据直接存在系统的文件中,而innodb的数据库会事先创建一个数据表空间文件,然后再从这个表空间文件中存数据;
myisam不提供事务支持,InnoDB提供事务支持事务,外部键等高级 数据库功能;
myisam的锁是对整个表锁定,innodb是行锁;
15. 如果你的mysql服务启动不了,而当前终端又没有报错,你如何做?
查看mysql的日志,日志默认在datadir下,以hostname为名字的.err文件
16. 要备份的库字符集是gbk的字符集,为了避免出现乱码的情况,如何在备份和还原的时候指定字符集为gbk?
备份指定 mysqldump --default-character-set=gbk
恢复指定 mysql --default-character-set=gbk
17. 错误日志中,如果出现提示说某个表损坏需要修复,你如何修复这个表呢?
repair table tablename;
18. 备份myisam引擎的数据库时,我们除了使用mysqldump工具备份外,还可以直接拷贝数据库的源数据(.frm, .MYD, .MYI三种格式的数据),其中哪一个文件可以不拷贝?若想恢复该文件,如何做?
.MYI的文件可以不拷贝,恢复的时候,需要修复表,但加上 use_frm, 如
repair table tb1 use_frm;
19. 如果mysql的root密码忘记了如何做?
1) 编辑mysql主配置文件 my.cnf vim /etc/my.cnf
在[mysqld]字段下添加参数 skip-grant
2) 重启数据库服务 service mysqld restart
3) 这样就可以进入数据库不用授权了 mysql -uroot
4) 修改相应用户密码 use mysql;
update user set password=password('your password') where user='root';
flush privileges;
5) 修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务
20. 如何更改mysql的普通账户密码?
update user set password=password('your password') where user='username';
21. mysql的命令历史文件在哪里,为了安全我们其实是可以做一个小处理,不让mysql的命令历史记录在文档中,请想一想如何利用之前我们学过的知识做到?
~/.mysql_history
我们可以这样不保存mysql命令历史: cd ~; rm -f .mysql_history; ln -s /dev/null .mysql_history
22. 如何让mysql的监听端口为3307,而不是默认的3306?
vim /etc/my.cnf
把port = 3306 改为 port = 3307
vim /etc/profile 加入 PATH=$PATH:/usr/local/mysql/bin
2. 默认mysql安装好后,并没有root密码,如何给root设置一个密码?
mysqladmin -uroot password 'newpass'
3. 如何更改root密码?
mysqladmin -uroot -poldpasswd password 'newpasswd'
4. 如何连接远程的mysql服务器?
mysql -uusername -ppass -hhostip -Pport
5. 如何查看当前登陆mysql的账户?
select user();
6. 在mysql命令行下,怎么切换某个库?
use databasename;
7. 如何查看一个表都有哪些字段?
desc tablename;
8. 如何查看某个表使用的是哪种数据库引擎?
show create table\G;
9. 如何查看当前数据库有哪些队列?
show processlist;
10. 当有很多队列时,如何查看有哪些慢查询?
看慢查询日志,慢查询日志在/etc/my.cnf中设置方法是增加:
log_slow_queries = logname
long_query_time = 1 //查询时间超过1s会记录日志
11. 如何查看当前mysql的参数值?
show variables;
12. 如何不重启mysql服务,更改某个参数?
set global xxx = xxx; 比如
set global wait_timeout = 10;
13. 用什么工具备份数据库?请区分myisam引擎和innodb引擎两种存储引擎的备份。
mysqldump 备份数据库,mysqldump可以备份两种引擎的数据。但是innodb引擎的数据使用xtrabackup工具更快
14. 简单描述myisam和innodb引擎的区别。
innodb不支持fulltext类型索引;
innodb不保存表的行数;
myisam的数据直接存在系统的文件中,而innodb的数据库会事先创建一个数据表空间文件,然后再从这个表空间文件中存数据;
myisam不提供事务支持,InnoDB提供事务支持事务,外部键等高级 数据库功能;
myisam的锁是对整个表锁定,innodb是行锁;
15. 如果你的mysql服务启动不了,而当前终端又没有报错,你如何做?
查看mysql的日志,日志默认在datadir下,以hostname为名字的.err文件
16. 要备份的库字符集是gbk的字符集,为了避免出现乱码的情况,如何在备份和还原的时候指定字符集为gbk?
备份指定 mysqldump --default-character-set=gbk
恢复指定 mysql --default-character-set=gbk
17. 错误日志中,如果出现提示说某个表损坏需要修复,你如何修复这个表呢?
repair table tablename;
18. 备份myisam引擎的数据库时,我们除了使用mysqldump工具备份外,还可以直接拷贝数据库的源数据(.frm, .MYD, .MYI三种格式的数据),其中哪一个文件可以不拷贝?若想恢复该文件,如何做?
.MYI的文件可以不拷贝,恢复的时候,需要修复表,但加上 use_frm, 如
repair table tb1 use_frm;
19. 如果mysql的root密码忘记了如何做?
1) 编辑mysql主配置文件 my.cnf vim /etc/my.cnf
在[mysqld]字段下添加参数 skip-grant
2) 重启数据库服务 service mysqld restart
3) 这样就可以进入数据库不用授权了 mysql -uroot
4) 修改相应用户密码 use mysql;
update user set password=password('your password') where user='root';
flush privileges;
5) 修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务
20. 如何更改mysql的普通账户密码?
update user set password=password('your password') where user='username';
21. mysql的命令历史文件在哪里,为了安全我们其实是可以做一个小处理,不让mysql的命令历史记录在文档中,请想一想如何利用之前我们学过的知识做到?
~/.mysql_history
我们可以这样不保存mysql命令历史: cd ~; rm -f .mysql_history; ln -s /dev/null .mysql_history
22. 如何让mysql的监听端口为3307,而不是默认的3306?
vim /etc/my.cnf
把port = 3306 改为 port = 3307