linux下Mysql 的安裝、配置、數據導入導出


  MySQL是一種開放源代碼的關系型數據庫管理系統(RDBMS),雖然功能未必很強大,但因它的免費開源而廣受歡迎。

  這次,接着上一篇《CentOs minimal安裝和開發環境部署》,講下Linux環境mysql的安裝、初始化配置、以及參數優化,中間會穿插在實際操作過程中遇到的新知識擴展。有些是承接上面的知識,如果不太清楚,可以到上一篇去看下。

一、安裝准備

  下載得到安裝包很簡單。

  1、rpm安裝:A、在linux下使用wget獲取 B、在虛擬機所在的宿主機windows下,在網絡上下載Rpm安裝包,然后通過之前我們配置的samba共享目錄拷貝到centos下。

  單獨下載要注意你需要的rpm包:

MySQL-server-5.1.x-0.i386.rpm //服務端
MySQL-client-5.1.x-0.i386.rpm  //客戶端        
MySQL-devel-5.1.x-0.i386.rpm  //開發包
...

  2、yum 在線安裝:使用CentOs的Yum(如果有特定的Mysql版本需求,要確定你的Yum庫里有需要的mysql版本)

  Yum (Yellow dog Updater, Modified)是一個基於rpm包管理的字符前端軟件包管理器。能夠從指定服務器自動下載rpm包並且安裝,處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
  簡單認識下幾個操作:
  yum -y install samba  #安裝samba,“-y”接受所有,不用手動一個個去確認每一步。
  yum remove samba    #卸載samba
  yum info installed   #列出系統中所有安裝過的rpm包
  yum list samba     #列出資源庫中指定的可以安裝或更新以及已經安裝的rpm包
  yum info samba     #列出資源庫中指定的可以安裝或更新以及已經安裝的rpm包的信息
  yum search samba    #搜索匹配指定字符的rpm包  

  二、安裝Mysql

  檢測當前系統是否已經安裝了mysql :運行下面的命令,如果已經安裝過,會顯示mysql的版本信息。

rpm -qa|grep mysql 

  如果已經安裝過mysql,但是不是自己需要的版本,比如需要高版本的mysql對事件的支持等,怎么辦?刪除唄!注意,這可能會刪除一些相關的依賴庫而影響到其他軟件,不過可以重新安裝。

yum remove mysql-server mysql-devel mysql-client #刪除mysql的server、client、以及devel

   1、rpm安裝:

rpm -ivh MySQL-server-5.1.x-0.i386.rpm #安裝服務端(x:你下載的對應版本號)
rpm -ivh MySQL-client-5.1.x-0.i386.rpm #安裝客戶端
rpm -ivh MySQL-devel-5.1.x-0.i386.rpm #安裝開發包 

    2、yum安裝:

yum -y install mysql-server  #安裝服務器端
yum -y install mysql-client  #安裝客戶端
yum -y install mysql-devel   #安裝開發包

   這里注意:

  A、根據你的開發環境需要,你可以選擇對應的rpm包。你可以在命令行,使用"yum search mysql"搜索與mysql有關的安裝包,從中選擇你需要的。如果你記不住名字也可以這樣搜索下。

yum search mysql

    

  B、上面列出rpm包名字和簡介,還可以通過yum info獲取具體rpm包的具體的版本信息

yum info mysql-server  #列出mysql-server版本信息
yum info mysql-client
yum info mysql-devel

#或者
yum info mysql* #一個命令一下子列出mysql相關的所有rpm安裝包版本信息

   

 

三、Mysql初始配置

  剛剛安裝好的mysql需要進行一定的配置,才適合使用。

  1、設置Mysql開機啟動

chkconfig --list mysql #查看mysql服務開機啟動狀態
mysql          0:off1:off2:on3:on4:on5:on6:off
#如果2--5都是on,就不需要下面的命令了
chkconfig mysql on 設置mysql服務開機啟動

  chkconfig,如果不知道是干什么的,那現在來了解下

chkconfig,用來更新(啟動或停止)和查詢系統服務的運行級信息。
使用語法:
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]
eg:
chkconfig --list [name]:顯示所有運行級系統服務的運行狀態信息(on或off)。如果指定了name,那么只顯示指定的服務在不同運行級的狀態。
chkconfig --add name:增加一項新的服務
chkconfig --del name:刪除服務
chkconfig [--level levels] name:設置某一服務在指定的運行級是被啟動,停止還是重置。


level,運行級別,可以用“runlevel”這個命令查詢到當前系統的運行級別,也可以“init 0-6”切換運行級別
0:表示關機
1:單用戶模式
2:無網絡連接的多用戶命令行模式
3:有網絡連接的多用戶命令行模式
4:不可用
5:帶圖形界面的多用戶模式
6:重新啟動
     

  2、Mysql服務的啟動/關閉/重啟

service mysql start/shutdown/restart/status  #啟動、關閉、重啟、查看服務當前狀態
或者 
/etc/rc.d/init.d/mysqld start/shutdown/restart/status  #啟動、關閉、重啟、查看服務當前狀態

  3、安全設置

⑴、剛安裝時,root用戶是空的,需要修改密碼:
  ①mysqladmin -u root password ‘new-password’
  ②或者,登陸后,直接修改用戶表里的密碼 
    mysql -u root    #用root用戶登錄
    1. select user,host,password from mysql.user;    查看數據庫的用戶
    2. use mysql    #切換到mysql表
       set password for root@localhost=password('123456');    #設置指定域名下root賬號的密碼
       set password for root@域名=password('123456');
    3.或者,更常見的sql操作:
       update user set password=password('123456') where user=‘root@localhost’;
⑵、匿名用戶是危險的
      
delete from mysql.user where user=''; #刪除匿名用戶
⑶、退出mysql:  exit;

  4、測試

  登陸:

[root@dream ~]mysql -u root #匿名登錄,已設置密碼或者刪除了匿名用戶,登陸失敗
[root@dream ~]mysql -u root -p  #通過密碼用root登錄
Enter password: #在這里輸入密碼123456
[root@dream ~]mysql -u root -p 123456  #顯示密碼登陸

  sql操作:

mysql> create database test; #建立名為test的數據庫,這個庫安裝后就有的。
mysql> show databases; #查看系統已存在的數據庫
mysql> use test  #切換到指定的數據庫
mysql> create table tbl_user(ID int, Name varchar(50)); #建立表
mysql> show tables;  #查看數據庫中已存在的表
mysql> drop table tbl_user; #刪除表
mysql>drop database test; #刪除名為test數據庫 
mysql> exit #退出MySQL服務器

 

  5、NaviCat遠程連接的權限問題

遠程登錄會出現如下提示: 
1103 - host xxx.xxx.xxx.xx is not allowed to connec to this mysql server.
或
1045 - Access denied for user 'root'@'192.168.1.11' (using password: YES).

解決方案:

//mysql訪問
grant all privileges on *.* to 'root'@'%' identified by '123456';

#其實就是權限問題,設置root在所有域名(%表示任何地址)登陸時,賦給所有權限,密碼123456。根據需要可設置更嚴格些。

 

四、數據庫和表的導入、導出

  1.導出整個的數據庫:mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名

    mysqldump -u root -p db_test >/home/bak/dbtest.sql

  2.導出指定數據庫中的一個表:mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名

    mysqldump -u root -p db_test tbl_user >/home/bak/test_user.sql

  3.只導出一個結構(struct):加上-d參數

    mysqldump -u root -p -d –add-drop-table db_test >/home/bak/dbtest_struct.sql

  4.只導出一個數據(data):加上-t參數

    mysqldump -u root -p -t –add-drop-table db_test >/home/bak/dbtest_struct.sql

⑴.只導出表結構 -d
  mysqldump  -h 192.168.1.11 -u root -p 123456 -d –default-character-set=utf8 test >sql.sql

⑵.只導出數據 -t
  mysqldump  -h 192.168.1.11 -u root -p 123456 -t –default-character-set=utf8 test >sql.sql

注:①.-d 沒有數據(不導出數據,只導出數據結構和表結構)

     -t 不導出結構,只要數據

     –add-drop-table 在每個create語句之前增加一個drop table

     –default-character-set 設置字符集

   ②.這里的導出文件沒有加路徑,就是相對路徑,當前的目錄下的文件。

   ③.密碼是顯示輸入的,跟在-p后面。

  5.導入數據庫:source 命令

[root@dream ~] mysql -u root -p #登陸
mysql>use test;
mysql>source /home/bak/db_test.sql

 

  歡迎轉載,條件允許請注明出處,謝謝! 

  作者:子韋一


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM