国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

Linux運維定會的MySQL企業面試題大全 推薦

2024-07-24 12:36:19
字體:
來源:轉載
供稿:網友
  Linux運維必會的MySQL企業面試題大全 推薦
 ?。?)基礎筆試命令考察
  1.開啟MySQL服務
  /etc/init.d/mysqld startservice mysqld startsystemctl  start mysqld
  2.檢測端口是否運行
  lsof -i :3306netstat -lntup |grep 3306
  3.為MySQL設置密碼或者修改密碼
  設置密碼
 
  mysql -uroot -ppassword -e "set passowrd for root = passowrd('passowrd')"
  mysqladmin -uroot passowrd "NEWPASSWORD"
  更改密碼
 
  mysqladmin -uroot passowrd oldpassowrd "NEWPASSWORD"use mysql;update user set passowrd = PASSWORD('newpassword') where user = 'root';flush privileges;
  msyql 5.7以上版本修改默認密碼命令
 
  alter user 'root'@'localhost' identified by 'root'
  4.登陸MySQL數據庫
  mysql -uroot -ppassword
  5.查看當前數據庫的字符集
  show create database DB_NAME;
  6.查看當前數據庫版本
  mysql -V
  mysql -uroot -ppassowrd -e "use mysql;select version();"
  7.查看當前登錄的用戶
  select user();
  8.創建GBK字符集的數據庫mingongge,并查看已建庫完整語句
  create database mingongge DEFAULT CHARSET GBK COLLATE gbk_chinese_ci;
  9.創建用戶mingongge,使之可以管理數據庫mingongge
  grant all on mingongge.* to 'mingongge'@'localhost' identified by 'mingongge';
  10.查看創建的用戶mingongge擁有哪些權限
  show grants for mingongge@localhost
  11.查看當前數據庫里有哪些用戶
  select user from mysql.user;
  12.進入mingongge數據庫
  use mingongge
  13.創建一innodb GBK表test,字段id int(4)和name varchar(16)
  create table test (     id int(4),     name varchar(16)
       )ENGINE=innodb DEFAULT CHARSET=gbk;
  14.查看建表結構及表結構的SQL語句
  desc test;show create table test/G
  15.插入一條數據“1,mingongge”
  insert into test values('1','mingongge');
  16.再批量插入2行數據 “2,民工哥”,“3,mingonggeedu”
  insert into test values('2','民工哥'),('3','mingonggeedu');
  17.查詢名字為mingongge的記錄
  select * from test where name = 'mingongge';
  18.把數據id等于1的名字mingongge更改為mgg
  update test set name = 'mgg' where id = '1';
  19.在字段name前插入age字段,類型tinyint(2)
  alter table test add age tinyint(2) after id;
  20.不退出數據庫,完成備份mingongge數據庫
  system mysqldump -uroot -pMgg123.0. -B mingongge >/root/mingongge_bak.sql
  21.刪除test表中的所有數據,并查看
  delete from test;select * from test;
  22.刪除表test和mingongge數據庫并查看
  drop table test;show tables;drop database mingongge;show databases;
  23.不退出數據庫恢復以上刪除的數據
  system mysql -uroot -pMgg123.0. </root/mingongge_bak.sql
  24.把庫表的GBK字符集修改為UTF8
  alter database mingongge default character set utf8;alter table test default character set utf8;
  25.把id列設置為主鍵,在Name字段上創建普通索引
  alter table test add primary key(id);create index mggindex on test(name(16));
  26.在字段name后插入手機號字段(shouji),類型char(11)
  alter table test add shouji char(11);#默認就是在最后一列后面插入新增列
  27.所有字段上插入2條記錄(自行設定數據)
  insert into test values('4','23','li','13700000001'),('5','26','zhao','13710000001');
  28.在手機字段上對前8個字符創建普通索引
  create index SJ on test(shouji(8));
  29.查看創建的索引及索引類型等信息
  show index from test;show create table test/G
  #下面的命令也可以查看索引類型  
  show keys from test/G
  30.刪除Name,shouji列的索引
  drop index SJ on test;drop index mggindex on test;
  31.對Name列的前6個字符以及手機列的前8個字符組建聯合索引
  create index lianhe on test(name(6),shouji(8));
  32.查詢手機號以137開頭的,名字為zhao的記錄(提前插入)
  select * from test where shouji like '137%' and name = 'zhao';
  33.查詢上述語句的執行計劃(是否使用聯合索引等)
  explain select * from test where name = 'zhao' and shouji like '137%'/G
  34.把test表的引擎改成MyISAM
  alter table test engine=MyISAM;
  35.收回mingongge用戶的select權限
  revoke select on mingongge.* from mingongge@localhost;
  36.刪除mingongge用戶
  drop user migongge@localhost;
  37.刪除mingongge數據庫
  drop database mingongge
  38.使用mysqladmin關閉數據庫
  mysqladmin -uroot -pMgg123.0. shutdownlsof -i :3306
  39.MySQL密碼丟了,請找回?
  mysqld_safe --skip-grant-tables &   #啟動數據庫服務mysql -uroot -ppassowrd -e "use mysql;update user set passowrd = PASSWORD('newpassword') where user = 'root';flush privileges;"
 ?。?)MySQL運維基礎知識面試問答題
  面試題001:請解釋關系型數據庫概念及主要特點?
  關系型數據庫模型是把復雜的數據結構歸結為簡單的二元關系,對數據的操作都是建立一個或多個關系表格上,最大的特點就是二維的表格,通過SQL結構查詢語句存取數據,保持數據一致性方面很強大
 
  面試題002:請說出關系型數據庫的典型產品、特點及應用場景?
  1、mysql   互聯網企業常用
  2、oracle   大型傳統企業應用軟件
  3、 如數據備份、復雜連接查詢、一致性數據存儲等,還是使用MySQL或者其他傳統的關系型數據庫最合適
 
  面試題003:請解釋非關系型數據庫概念及主要特點?
  非關系型數據庫也被稱為NoSQL數據庫,數據存儲不需有特有固定的表結構
  特點:高性能、高并發、簡單易安裝
 
  面試題004:請說出非關系型數據庫的典型產品、特點及應用場景?
  1、memcaced 純內存
  2、redis  持久化緩存
  3、mongodb 面向文檔
  如果需要短時間響應的查詢操作,沒有良好模式定義的數據存儲,或者模式更改頻繁的數據存儲還是用NoSQL
 
  面試題005:請詳細描述SQL語句分類及對應代表性關鍵字。
  sql語句分類如下
  DDL  數據定義語言,用來定義數據庫對象:庫、表、列
  代表性關鍵字:create alter drop
  DML  數據操作語言,用來定義數據庫記錄
  代表性關鍵字:insert delete update
  DCL  數據控制語言,用來定義訪問權限和安全級別
  代表性關鍵字:grant deny revoke
  DQL  數據查詢語言,用來查詢記錄數據
  代表性關鍵字:select
 
  面試題006:請詳細描述char(4)和varchar(4)的差別
  char長度是固定不可變的,varchar長度是可變的(在設定內)比如同樣寫入cn字符,char類型對應的長度是4(cn+兩個空格),但varchar類型對應長度是2
 
  面試題007:如何創建一個utf8字符集的數據庫mingongge?
  create database mingongge default character utf8 collate utf8_general_ci;
  面試題008:如何授權mingongge用戶從172.16.1.0/24訪問數據庫。
  grant all on *.* to mingongge@'172.16.1.0/24' identified by '123456';
  面試題009:什么是MySQL多實例,如何配置MySQL多實例?
  mysql多實例就是在同一臺服務器上啟用多個mysql服務,它們監聽不同的端口,運行多個服務進程,它們相互獨立,互不影響的對外提供服務,便于節約服務器資源與后期架構擴展
  多實例的配置方法有兩種:
  1、一個實例一個配置文件,不同端口
  2、同一配置文件(my.cnf)下配置不同實例,基于mysqld_multi工具
 
  面試題010:如何加強MySQL安全,請給出可行的具體措施?
  1、刪除數據庫不使用的默認用戶
  2、配置相應的權限(包括遠程連接)
  3、不可在命令行界面下輸入數據庫的密碼
  4、定期修改密碼與加強密碼的復雜度
 
  面試題011:MySQL root密碼忘了如何找回?
  參考前面的回答
 
  面試題012:delete和truncate刪除數據的區別?
  前者刪除數據可以恢復,它是逐條刪除速度慢
  后者是物理刪除,不可恢復,它是整體刪除速度快
 
  面試題013:MySQL Sleep線程過多如何解決?
  1、可以殺掉sleep進程,kill PID
  2、修改配置,重啟服務
 
  [mysqld]
  wait_timeout = 600interactive_timeout=30#如果生產服務器不可隨便重啟可以使用下面的方法解決set global wait_timeout=600set global interactive_timeout=30;
  面試題014:sort_buffer_size參數作用?如何在線修改生效?
   在每個connection(session)第一次連接時需要使用到,來提訪問性能
   set global sort_buffer_size = 2M
  面試題015:如何在線正確清理MySQL binlog?
  MySQL中的binlog日志記錄了數據中的數據變動,便于對數據的基于時間點和基于位置的恢復
  但日志文件的大小會越來越大,點用大量的磁盤空間,因此需要定時清理一部分日志信息
  手工刪除:
 
  首先查看主從庫正在使用的binlog文件名稱
  show master(slave) status/G
  刪除之前一定要備份
  purge master logs before'2017-09-01 00:00:00';
  #刪除指定時間前的日志
  purge master logs to'mysql-bin.000001';
  #刪除指定的日志文件
  自動刪除:
  通過設置binlog的過期時間讓系統自動刪除日志
  show variables like 'expire_logs_days';
  et global expire_logs_days = 30;
  #查看過期時間與設置過期時間
 
  面試題016:Binlog工作模式有哪些?各什么特點,企業如何選擇?
  1.Row(行模式);
  日志中會記錄成每一行數據被修改的形式,然后在slave端再對相同的數據進行修改
  2.Statement(語句模式)
  每一條修改的數據都會完整的記錄到主庫master的binlog里面,在slave上完整執行在master執行的sql語句
  3.mixed(混合模式)
  結合前面的兩種模式,如果在工作中有使用函數 或者觸發器等特殊功能需求的時候,使用混合模式
  數據量達到比較高時候,它就會選擇 statement模式,而不會選擇Row Level行模式
 
  面試題017:誤操作執行了一個drop庫SQL語句,如何完整恢復?
  1、停止主從復制,在主庫上執行鎖表并刷新binlog操作,接著恢復之前的全備文件(比如0點的全備)
  2、將0點時的binlog文件與全備到故障期間的binlog文件合并導出成sql語句
  mysqlbinlog --no-defaults mysql-bin.000011 mysql-bin.000012 >bin.sql
  3、將導出的sql語句中drop語句刪除,恢復到數據庫中
  mysql -uroot -pmysql123 < bin.sql
 
  面試題018:mysqldump備份使用了-A -B參數,如何實現恢復單表?
  -A 此參數作用是備份所有數據庫(相當于--all-databases)
  -B databasename 備份指定數據(單庫備份使用)
 
  面試題019:詳述MySQL主從復制原理及配置主從的完整步驟
  主從復制的原理如下:
  主庫開啟binlog功能并授權從庫連接主庫,從庫通過change master得到主庫的相關同步信息,然后連接主庫進行驗證,主庫IO線程根據從庫slave線程的請求,從master.info開始記錄的位置點向下開始取信息,同時把取到的位置點和最新的位置與binlog信息一同發給從庫IO線程,從庫將相關的sql語句存放在relay-log里面,最終從庫的sql線程將relay-log里的sql語句應用到從庫上,至此整個同步過程完成,之后將是無限重復上述過程
  完整步驟如下:
 
  1、主庫開啟binlog功能,并進行全備,將全備文件推送到從庫服務器上
  2、show master status/G 記錄下當前的位置信息及二進制文件名
  3、登陸從庫恢復全備文件
  4、執行change master to 語句
  5、執行start slave and show slave status/G
 
  面試題020:如何開啟從庫的binlog功能?
  修改配置文件加上下面的配置
 
  log_bin=slave-binlog_bin_index=slave-bin.index
  需要重啟服務生效
 
  面試題021:MySQL如何實現雙向互為主從復制,并說明應用場景?
  雙向同步主要應用于解決單一主庫寫的壓力,具體配置如下
  主庫配置
 
  [mysqld]
  auto_increment_increment  = 2  #起始IDauto_increment_offset     = 1  #ID自增間隔log-slave-updates
  從庫配置
 
  [mysqld]
  auto_increment_increment  = 2  #起始IDauto_increment_offset     = 2  #ID自增間隔log-slave-updates
  主從庫服務器都需要重啟mysql服務
 
  面試題022:MySQL如何實現級聯同步,并說明應用場景?
  級聯同步主要應用在從庫需要做為其它數據庫的主庫
  在需要做級聯同步的數據庫配置文件增加下面的配置即可
 
  log_bin=slave-binlog_bin_index=slave-bin.index
  面試題023:MySQL主從復制故障如何解決?
  登陸從庫
 
  1、執行stop slave;停止主從同步
  2、然后set global sql_slave_skip_counter = 1;跳過一步錯誤
  3、最后執行  start slave;并查看主從同步狀態
 
  需要重新進行主從同步操作步驟如下
  進入主庫
 
  1、進行全備數據庫并刷新binlog,查看主庫此的狀態
  2、恢復全備文件到從庫,然后執行change master
  3、開啟主從同步start slave;并查看主從同步狀態
 
  面試題024:如何監控主從復制是否故障?
  mysql -uroot -ppassowrd -e "show slave status/G" |grep -E "Slave_IO_Running|Slave_SQL_Running"|awk '{print $2}'|grep -c Yes
  通過判斷Yes的個數來監控主從復制狀態,正常情況等于2
  面試題025:MySQL數據庫如何實現讀寫分離?
  1、通過開發程序實現
  2、通過其它工具實現(如mysql-mmm)
 
  面試題026:生產一主多從從庫宕機,如何手工恢復?
  1、執行stop slave 或者停止服務
  2、修復好從庫數據庫
  3、然后重新操作主庫同步
 
  面試題027:生產一主多從主庫宕機,如何手工恢復?
  1、登陸各個從庫停止同步,并查看誰的數據最新,將它設置為新主庫讓其它從庫同步其數據
  2、修復好主庫之后,生新操作主從同步的步驟就可以了
 
  #需要注意的新的主庫如果之前是只讀,需要關閉此功能讓其可寫#需要在新從庫創建與之前主庫相同的同步的用戶與權限#其它從庫執行change master to master_port=新主庫的端口,start slave
  面試題028:工作中遇到過哪些數據庫故障,請描述2個例子?
  1、開發使用root用戶在從庫上寫入數據造成主從數據不一致,并且前端沒有展示需要修改的內容(仍舊是老數據)
  2、內網測試環境服務器突然斷電造成主從同步故障
 
  面試題029:MySQL出現復制延遲有哪些原因?如何解決?
  1、需要同步的從庫數據太多
  2、從庫的硬件資源較差,需要提升
  3、網絡問題,需要提升網絡帶寬
  4、主庫的數據寫入量較大,需要優配置和硬件資源
  5、sql語句執行過長導致,需要優化
 
  面試題030:給出企業生產大型MySQL集群架構可行備份方案?
  1、雙主多從,主從同步的架構,然后實行某個從庫專業做為備份服務器
  2、編寫腳本實行分庫分表進行備份,并加入定時任務
  3、最終將備份服務推送至內網專業服務器,數據庫服務器本地保留一周
  4、備份服務器根據實際情況來保留備份數據(一般30天)
 
  面試題031:什么是數據庫事務,事務有哪些特性?企業如何選擇?
  數據庫事務是指邏輯上的一組sql語句,組成這組操作的各個語句,執行時要么成功,要么失敗
  特點:具有原子性、隔離性、持久性、一致性
 
  面試題032:請解釋全備、增備、冷備、熱備概念及企業實踐經驗?
  全備:數據庫所有數據的一次完整備份,也就是備份當前數據庫的所有數據
  增備:就在上次備份的基礎上備份到現在所有新增的數據
  冷備:停止服務的基礎上進行備份操作
  熱備:實行在線進行備份操作,不影響數據庫的正常運行
  全備在企業中基本上是每周或天一次,其它時間是進行增量備份
  熱備使用的情況是有兩臺數據庫在同時提供服務的情況,針對歸檔模式的數據庫
  冷備使用情況有企業初期,數據量不大且服務器數量不多,可能會執行某些庫、表結構等重大操作時
 
  面試題033:MySQL的SQL語句如何優化?
  建立主鍵與增加索引
 
  面試題034:企業生產MySQL集群架構如何設計備份方案?
  1、集群架構可采用雙主多從的模式,但實際雙主只有一主在線提供服務,兩臺主之間做互備
  2、另外的從可做讀的負載均衡,然后將其中一臺抽出專業做備份
 
  面試題035:開發有一堆數據發給dba執行,DBA執行需注意什么?
  1、需要注意語句是否有格式上的錯誤,執行會出錯導致過程中斷
  2、還需要注意語句的執行時間是否過長,是否會對服務器負載產生壓力影響實際生產
 
  面試題036:如何調整生產線中MySQL數據庫的字符集。
  1、首先導出庫的表結構 -d 只導出表結構,然后批量替換
  2、導出庫中的所有數據(在不產生新數據的前提下)
  3、然后全局替換set names = xxxxx
  4、刪除原有庫與表,并新創建出來,再導入建庫與建表語句與所有數據
 
  面試題037:請描述MySQL里中文數據亂碼原理,如何防止亂碼?
  服務器系統、數據庫、客戶端三方字符集不一致導致,需要統一字符
 
  面試題038:企業生產MySQL如何優化(請多角度描述)?
  1、提升服務器硬件資源與網絡帶寬
  2、優化mysql服務配置文件
  3、開啟慢查詢日志然后分析問題所在
 
  面試題039:MySQL高可用方案有哪些,各自特點,企業如何選擇?
  高可用方案有
 
  1、主從架構
  2、MySQL+MMM
  3、MySQL+MHA
  4、mysql+haproxy+drbd
  5、mysql+proxy+amoeba
 
  面試題040:如何批量更改數據庫表的引擎?
  通過mysqldump命令備份出一個sql文件,再使用sed命令替換
  或者執行下面的腳本進行修改
 
  #!/bin/shuser=root
  passwd=123456
  cmd="mysql -u$user -p$passwd "dump="mysqldump -u$user -p$passwd"for database in `$cmd -e "show databases;"|sed '1,2d'|egrep -v "mysql|performance_schema"`dofor tables in `dump -e "show tables from $databses;"|sed '1d'`do$cmd "alter table $database.$tables engine = MyISAm;"donedone
  面試題041:如何批量更改數據庫字符集?
  通過mysqldump命令備份出一個sql文件,再使用sed命令替換sed -i 's/GBK/UTF8/g'
 
  面試題042:網站打開慢,請給出排查方法,如是數據庫慢導致,如何排查并解決,請分析并舉例?
  1、可以使用top free 等命令分析系統性能等方面的問題
  2、如是因為數據庫的原因造成的,就需要查看慢查詢日志去查找并分析問題所在。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛阳市| 商都县| 河东区| 固阳县| 黄冈市| 德保县| 宁陵县| 曲周县| 泊头市| 诸暨市| 屏东县| 西丰县| 宜黄县| 泌阳县| 桦川县| 宁武县| 葫芦岛市| 辉南县| 尼玛县| 清新县| 牡丹江市| 永济市| 老河口市| 铜山县| 澄江县| 浮山县| 海城市| 修武县| 民丰县| 三河市| 南召县| 拉萨市| 桦南县| 岑溪市| 城固县| 东港市| 泗洪县| 鹤山市| 景泰县| 丰县| 陆河县|