1. 如何更改系统环境变量PATH?vim /etc/profile.d/path.sh 加入
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/apache2/bin
2. 默认mysql安装好后,并没有root密码,如何给root设置一个密码? mysqladmin -uroot password 'newpass' 3. 如何更改root密码? mysqladmin -uroot -poldpasswd password 'newpasswd'
4. 如何连接远程的mysql服务器?mysql -uusername -ppass -hhostip -Pport
username 用户名 pass密码 hostip 另一台机的ip -P 连接的端口
5. 如何查看当前登陆mysql的账户? select user();6. 在mysql命令行下,怎么切换某个库? use databasename; 或 use mysql;或 use discuz; 7. 如何查看一个表都有哪些字段? desc tablename;8. 如何查看某个表使用的是哪种数据库引擎? show create table\G;
9. 如何查看当前数据库有哪些队列? show processlist;10. 当有很多队列时,如何查看有哪些慢查询?看慢查询日志,慢查询日志在/etc/my.cnf中设置方法是增加:log_slow_queries = /data/mysql/slow.loglong_query_time = 1 //查询时间超过1s会记录日志
查看日志文件 cat /data/mysql/slow.log
命令 show global status like "%slow%";
11. 如何查看当前mysql的参数值? show variables;
12. 如何不重启mysql服务,更改某个参数? set global xxx = xxx; 比如set global wait_timeout = 10;或者set global max_connect_errors=1000;
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; 例如 mysql> repair table discuz.pre_forum_post;
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-grant2) 重启数据库服务 service mysqld restart3) 这样就可以进入数据库不用授权了 mysql -uroot4) 修改相应用户密码 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