没有合适的资源?快使用搜索试试~ 我知道了~
linux运维必会Mysql企业面试题.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 152 浏览量
2022-10-30
23:23:31
上传
评论
收藏 116KB DOCX 举报
温馨提示
试读
18页
!
资源推荐
资源详情
资源评论
linux 运维必会 MySQL 企业面试题
时间:2015 年 08 月 06 日 | 作者 : admins | 分类 : mysql | 浏览: 1191 次 | 评论 1 人
面试题 019 :MySQL 集群和高可用方案有哪些,再生产场景你都用过
哪些方案?
常用 mysql 集群可以使用双主一从,一主多从;高可用方案:
MMM、MHA、mysql+ha+drbd 读写分离:MySQL+proxy 、
Amoeba
生产中我使用的是双主 3 从,其中从库两台对外提供读服务,
一台对内给开发或者 DBA 提供服务
面试题 020:MySQL 数据库如何实现读写分离,你的公司是怎么实现的
(请答出 200 服务器以上规模企业数据库的解决方案)
我们公司使用的是 mysql+proxy 进行读写分离。在生产中,可以有这
样两种方法
1.主库:web oldboy123 10.0.0.% 3306 (slect,insert,delete,update),
主库忽略 mysql 同步授权
【binlog-ignore-db=mysql
replicate-ignore-db=mysql】
从库:主库的 web 用户同步到从库,然后回收权限
insert,delete,update,下面具体是回收权限方法
mysql> REVOKE insert,update,delete ON oldboy.* FROM 'web1
'@'10.0.0.%';
Query OK, 0 rows affected (0.00 sec)mysql> show grants fo
r web@'10.0.0.%';+---------------------------------------
---------------------------------------------------------
------------+|******************.0.%
1
|+-----------------------------------------------
2---------------------------------------------------------
----+| GRANT USAGE ON *.* TO 'web1'@'10.0.0.%' IDENTIFIED
BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257'
|| GRANT SELECT ON `oldboy`.* TO 'web1'@'10.0.0.%'
|+--
---------------------------------------------------------
-------------------------------------------------+2 rows
in set (0.00 sec)
2.
主库:web oldboy123 10.0.0.% 3306
从库:
web oldboy123 10.0.0.% 3306 (select)
设置 read-only 确保从库为只读
面试题 021:开发有一堆数据插入,如何防止插入的中文数据产生乱码?
1.询问开发应用程序支持什么字符集 2.将数据转换为相应应用程序字
符集保存 3.设置服务器端字符集(修改配置文件 my.cnf, 使用命令 set
names utf-8)
面试题 022:如何批量更改数据库表的引擎,例如:myisam 改成 innodb。
方法一:
1.通过 mysqldump -uroot -poldboy -S /data/3306/mysql.sock -x
-B oldboy > /opt/oldboy.sql
2.使用 sed 替换,sed -i 's/myisam/innodb/g' /opt/oldboy.sql
3.mysql -uroot -poldboy -S /data/3306/mysql.sock
</opt/oldboy.sql
方法二:
1.登录数据库,执行下面的脚本
mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "alter
table oldboy.test engine=MyISAm;"
ALTER TABLE oldboy ENGINE = INNODB;
socket=/tmp/mysql.sock
mycmd="mysql -u$myuser -p$mypasswd -S $socket"
mydump="mysqldump -u$myuser -p$mypasswd -S $socket"
for database in `$mycmd -e "show databases;"|sed '1,2d'|e
grep -v "mysql|performance_schema"`
do
for tables in `mydump -e "show tables from $datab
ses;"|sed '1d'`
$mycmd "alter table $database.$tables engine =
innodb;"
done
done
面试题 023:如何批量更改数据库字符集,例如;GBK 更改为 UTF8。
方法一:可以通过 mysqldump 命令备份出一个 sql 文件,再使用 sed
命令替换 sed -i 's/GBK/UTF8/g'
方法二:通过 shell 脚本循环,过滤出数据库结合 alter database test
set character utf8
1 mysql> help alter database
2 Name: 'ALTER DATABASE'
3 Description:
4 Syntax:
5 ALTER {DATABASE | SCHEMA} [db_name]
6
alter_specification ...
7 ALTER {DATABASE | SCHEMA} db_name
UPGRADE DATA DIRECTORY NAME
9 alter_specification:
8
10
[DEFAULT] CHARACTER SET [=] charset_name
11 | [DEFAULT] COLLATE [=] collation_name
面试题 024 :你的数据库是如何备份的(请答出200 服务器以上规模企
业数据库备份的解决方案)
我公司的服务器采用的一主多从的方案,然后单独拿出一台服务器作
为数据备份,同时采用 inotify 监控软件实时将从库产生的
剩余17页未读,继续阅读
资源评论
不吃鸳鸯锅
- 粉丝: 8298
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功