Ⅰ 怎麼在linux上安裝mysql
1. 運行平台:CentOS 6.3 x86_64,基本等同於RHEL 6.3
2. 安裝方法:
安裝MySQL主要有兩種方法:一種是通過源碼自行編譯安裝,這種適合高級用戶定製MySQL的特性,這里不做說明;另一種是通過編譯過的二進制文件進行安裝。二進制文件安裝的方法又分為兩種:一種是不針對特定平台的通用安裝方法,使用的二進制文件是後綴為.tar.gz的壓縮文件;第二種是使用RPM或其他包進行安裝,這種安裝進程會自動完成系統的相關配置,所以比較方便。
3. 下載安裝包:
a. 官方下載地址:
http://dev.mysql.com/downloads/mysql/#downloads
或鏡像文件下載:
http://dev.mysql.com/downloads/mirrors.html
2. 下載文件(根據操作系統選擇相應的發布版本):
a. 通用安裝方法
mysql-5.5.29-linux2.6-x86_64.tar.gz
b. RPM安裝方法:
MySQL-server-5.5.29-2.el6.x86_64.rpm
MySQL-client-5.5.29-2.el6.x86_64.rpm
4. 通用安裝步驟
a. 檢查是否已安裝,grep的-i選項表示匹配時忽略大小寫
[root@localhost JavaEE]#rpm -qa|grep -i mysql
mysql-libs-5.1.61-4.el6.x86_64
*可見已經安裝了庫文件,應該先卸載,不然會出現覆蓋錯誤。注意卸:載時使用了--nodeps選項,忽略了依賴關系:
[root@localhost JavaEE]#rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps
b. 添加mysql組和mysql用戶,用於設置mysql安裝目錄文件所有者和所屬組。
[root@localhost JavaEE]#groupadd mysql
[root@localhost JavaEE]#useradd -r -g mysql mysql
*useradd -r參數表示mysql用戶是系統用戶,不可用於登錄系統。
c. 將二進制文件解壓到指定的安裝目錄,我們這里指定為/usr/local
[root@localhost ~]# cd/usr/local/
[root@localhost local]#tar zxvf /path/to/mysql-5.5.29-linux2.6-x86_64.tar.gz
*加壓後在/usr/local/生成了解壓後的文件夾mysql-5.5.29-linux2.6-x86_64,這名字太長,我們為它建立一個符號鏈接mysql,方便輸入。
[root@localhost local]#ln -s mysql-5.5.29-linux2.6-x86_64 mysql
d. /usr/local/mysql/下的目錄結構
Directory
Contents of Directory
bin
Client programs and the mysqld server
data
Log files, databases
docs
Manual in Info format
man
Unix manual pages
include
Include (header) files
lib
Libraries
scripts
mysql_install_db
share
Miscellaneous support files, including error messages, sample configuration files, SQL for database installation
sql-bench
Benchmarks
e. 進入mysql文件夾,也就是mysql所在的目錄,並更改所屬的組和用戶。
[root@localhost local]#cd mysql
[root@localhost mysql]#chown -R mysql .
[root@localhost mysql]#chgrp -R mysql .
f. 執行mysql_install_db腳本,對mysql中的data目錄進行初始化並創建一些系統表格。注意mysql服務進程mysqld運行時會訪問data目錄,所以必須由啟動mysqld進程的用戶(就是我們之前設置的mysql用戶)執行這個腳本,或者用root執行,但是加上參數--user=mysql。
[root@localhost mysql]scripts/mysql_install_db --user=mysql
*如果mysql的安裝目錄(解壓目錄)不是/usr/local/mysql,那麼還必須指定目錄參數,如
[root@localhost mysql]scripts/mysql_install_db --user=mysql \
--basedir=/opt/mysql/mysql \
--datadir=/opt/mysql/mysql/data
*將mysql/目錄下除了data/目錄的所有文件,改回root用戶所有,mysql用戶只需作為mysql/data/目錄下所有文件的所有者。
[root@localhost mysql]chown -R root .
[root@localhost mysql]chown -R mysql data
g. 復制配置文件
[root@localhost mysql] cp support-files/my-medium.cnf /etc/my.cnf
h. 將mysqld服務加入開機自啟動項。
*首先需要將scripts/mysql.server服務腳本復制到/etc/init.d/,並重命名為mysqld。
[root@localhostmysql] cp support-files/mysql.server /etc/init.d/mysqld
*通過chkconfig命令將mysqld服務加入到自啟動服務項中。
[root@localhost mysql]#chkconfig --add mysqld
*注意服務名稱mysqld就是我們將mysql.server復制到/etc/init.d/時重命名的名稱。
*查看是否添加成功
[root@localhost mysql]#chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
i. 重啟系統,mysqld就會自動啟動了。
*檢查是否啟動
[root@localhost mysql]#netstat -anp|grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2365/mysqld
unix 2 [ ACC ] STREAM LISTENING 14396 2365/mysqld /tmp/mysql.sock
*如果不想重新啟動,那可以直接手動啟動。
[root@localhost mysql]#service mysqld start
Starting MySQL.. SUCCESS!
j. 運行客戶端程序mysql,在mysql/bin目錄中,測試能否連接到mysqld。
[root@localhost mysql]#/usr/local/mysql/bin/mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 2
Server version:5.5.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registeredtrademark of Oracle Corporation and/or its affiliates. Other names may betrademarks of their respective owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql> quit
Bye
*此時會出現mysql>命令提示符,可以輸入sql語句,輸入quit或exit退出。為了避免每次都輸入mysql的全路徑/usr/local/mysql/bin/mysql,可將其加入環境變數中,在/etc/profile最後加入兩行命令:
MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
這樣就可以在shell中直接輸入mysql命令來啟動客戶端程序了
[root@localhost mysql]#mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 3
Server version:5.5.29-log MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registeredtrademark of Oracle Corporation and/or its
affiliates. Other namesmay be trademarks of their respective
owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql>
5. RPM安裝步驟
a. 檢查是否已安裝,grep的-i選項表示匹配時忽略大小寫
[root@localhost JavaEE]#rpm -qa|grep -i mysql
mysql-libs-5.1.61-4.el6.x86_64
可見已經安裝了庫文件,應該先卸載,不然會出現覆蓋錯誤。注意卸載時使用了--nodeps選項,忽略了依賴關系:
[root@localhost JavaEE]#rpm -e mysql-libs-5.1.61-4.el6.x86_64 --nodeps
2. 安裝MySQL的伺服器端軟體,注意切換到root用戶:
[root@localhost JavaEE]#rpm -ivh MySQL-server-5.5.29-2.el6.x86_64.rpm
安裝完成後,安裝進程會在Linux中添加一個mysql組,以及屬於mysql組的用戶mysql。可通過id命令查看:
[root@localhost JavaEE]#id mysql
uid=496(mysql)gid=493(mysql) groups=493(mysql)
MySQL伺服器安裝之後雖然配置了相關文件,但並沒有自動啟動mysqld服務,需自行啟動:
[root@localhost JavaEE]#service mysql start
Starting MySQL.. SUCCESS!
可通過檢查埠是否開啟來查看MySQL是否正常啟動:
[root@localhost JavaEE]#netstat -anp|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 34693/mysqld
c. 安裝MySQL的客戶端軟體:
[root@localhost JavaEE]#rpm -ivh MySQL-client-5.5.29-2.el6.x86_64.rpm
如果安裝成功應該可以運行mysql命令,注意必須是mysqld服務以及開啟:
[root@localhost JavaEE]#mysql
Welcome to the MySQLmonitor. Commands end with ; or \g.
Your MySQL connection idis 1
Server version: 5.5.29MySQL Community Server (GPL)
Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademarkof Oracle Corporation and/or its affiliates. Other names may be trademarks oftheir respective owners.
Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.
mysql>
d. RPM安裝方式文件分布
Directory
Contents of Directory
/usr/bin
Client programs and scripts
/usr/sbin
The mysqld server
/var/lib/mysql
Log files, databases
/usr/share/info
Manual in Info format
/usr/share/man
Unix manual pages
/usr/include/mysql
Include (header) files
/usr/lib/mysql
Libraries
/usr/share/mysql
Miscellaneous support files, including error messages, character set files, sample configuration files, SQL for database installation
/usr/share/sql-bench
Benchmarks
Ⅱ centos涓嬫庝箞鍚鍔╩ysql
Linux浣滀負綾籙nix錛屽悓鏍蜂篃瀛樺湪榪欎袱縐嶉庢牸錛屽叾涓瑿entos灞炰簬System V錛屾湰鏂囦富瑕佷粙緇嶅湪Centos涓嬶紙鍗砈ystem V椋庢牸錛夊備綍鍚鍔ㄥ拰鍏抽棴MySQL錛屽悓鏃剁畝鍗曚粙緇岯SD緋葷粺鐨勬儏鍐點
MySQL鍚鍔ㄦ柟寮
1錛夌洿鎺ヨ皟鐢╩ysqld銆傝繖鏄鏈涓嶅父瑙佺殑鏂瑰紡錛屼笉鎺ㄨ崘浣跨敤銆
2錛夎繍琛宮ysql.server鑴氭湰
mysql.server鑴氭湰閫氳繃璋冪敤mysqld_safe鍚鍔ㄦ湇鍔″櫒錛岃ヨ剼鏈鍙浠ラ氳繃鍙傛暟start鍜宻top鎸囧畾鍚鍔ㄨ繕鏄鍏抽棴銆
mysql.server鑴氭湰鍦∕ySQL瀹夎呯洰褰曚笅鐨剆hare/mysql鐩褰曚腑錛屽傛灉鏄閲囩敤婧愮爜瀹夎呯殑MySQL錛屽垯鍙浠ュ湪support-files鐩褰曢噷鎵懼埌銆傚傛灉鎯充嬌鐢╩ysql.server錛屽垯蹇呴』鎶婂畠澶嶅埗鍒板悎閫傜殑榪愯岀駭鍒鐩褰曚腑錛屽備笅鎵紺猴細
?
1
2
[plain]
cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
濡備笂閰嶇疆涔嬪悗錛屽氨鍙浠ュ埄鐢ㄤ互涓嬪懡浠ゅ惎鍔ㄥ拰鍏抽棴MySQL瀹炰緥浜嗭細
[sql]
service mysqld start/stop
/etc/init.d/mysqld start/stop
浣跨敤chkconfig鍛戒護閰嶇疆寮鏈鴻嚜鍔ㄥ惎鍔錛
[sql]
chkconfig --add mysqld
chkconfig mysqld on
榪愯屼互涓嬪懡浠ゆ鏌ユ槸鍚︽g『鍚鐢錛
[plain]
[root@data data]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL鍏抽棴鏂瑰紡
Ⅲ 怎麼退出mysql命令行
使用: mysql -u root -p 進入 mysql 命令號以後, 如果想退出, 可以使用: quit 命令, 如下:
mysql -u root -p
quit;
(3)centos退出mysql命令擴展閱讀:
資料庫常用操作:
登錄到mysql中,然後在mysql的提示符下運行下列命令,每個命令以分號結束。
1、顯示資料庫列表。
show databases;
預設有兩個資料庫:mysql和test。 mysql庫存放著mysql的系統和用戶許可權信息,我們改密碼和新增用戶,實際上就是對這個庫進行操作。
2、 顯示庫中的數據表:
use mysql;
show tables;
3、 顯示數據表的結構:describe 表名;
4、 建庫與刪庫:
create database 庫名;
drop database 庫名;
5、 建表:
use 庫名;
create table 表名(欄位列表);
drop table 表名;
6、 清空表中記錄:
delete from 表名;
truncate table 表名;
7、 顯示表中的記錄:select * from 表名;
Ⅳ centos下怎麼啟動mysql
一、MySQL安裝
Centos下安裝mysql 請點開:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html二、MySQL的幾個重要目錄
MySQL安裝完成後不象SQL Server默認安裝在一個目錄,它的資料庫文件、配置文件和命令文件分別在不同的目錄,了解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較復雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。
下面就介紹一下這幾個目錄。
2.1、資料庫目錄
/var/lib/mysql/
2.2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)2.3、相關命令
/usr/bin(mysqladmin mysqlmp等命令)
2.4、啟動腳本
/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)三、登錄MySQL
3.1、連接本機MySQL
例1:連接到本機上的MYSQL。
首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符 是:mysql>。
3.2、連接遠程MySQL
例2:連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
3.3、退出MYSQL
命令: exit (回車)。
四、修改登錄密碼
MySQL默認沒有密碼,安裝完畢增加密碼的重要性是不言而喻的。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼4.1、首次改密碼
例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令:
mysqladmin -uroot -password ab12
註:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
4.2、再次改密碼
例2:再將root的密碼改為djg345。
mysqladmin -uroot -pab12 password djg345
五、增加用戶
(注意:和上面不同,下面的因為是MySQL環境中的命令,所以後面都帶一個分號作為命令結束符)格式:grant select on 資料庫.* to 用戶名@登錄主機 identified by \"密碼\"例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root用戶連入MySQL,然後鍵入以下命令:
grant select,insert,update,
delete on *.* to test1@\"%\" Identified by \"abc\";但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的MySQL資料庫並對你的數據可以為所欲為了,解決辦法見例2。
例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MySQL資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據 庫,只能通過MySQL主機上的web頁來訪問。
grant select,insert,update,
delete on mydb.* to test2@localhost identified by \"abc\";如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";用新增的用戶如果登錄不了MySQL,
在登錄時用如下命令:mysql -u user_1 -p-h 192.168.113.50(-h後跟的是要登錄主機的ip地址)六、啟動與停止
6.1、啟動
MySQL安裝完成後啟動文件mysql在/etc/init.d目錄下,在需要啟動時運行下面命令即可。
[root@test1 init.d]# /etc/init.d/mysql start6.2、停止
/usr/bin/mysqladmin -u root -p shutdown
6.3、自動啟動
6.3.1、察看mysql是否在自動啟動列表中
[root@test1 local]#/sbin/chkconfig –list6.3.2、把MySQL添加到你系統的啟動服務組裡面去[root@test1 local]#/sbin/chkconfig– addmysql6.3.3、把MySQL從啟動服務組裡面刪除。
[root@test1 local]#/sbin/chkconfig– delmysql七、更改MySQL目錄
MySQL默認的數據文件存儲目錄為/var/lib/mysql。
假如要把目錄移到/home/data下需要進行下面幾步:
7.1、home目錄下建立data目錄
cd /home mkdir data
7.2、把MySQL服務進程停掉:
mysqladmin -u root -p shutdown
7.3、把/var/lib/mysql整個目錄移到/home/datamv /var/lib/mysql/home/data/
這樣就把MySQL的數據文件移動到了/home/data/mysql下7.4、找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。
命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf/etc/my.cnf7.5、編輯MySQL的配置文件/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。
修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。
操作如下:
vi my.cnf
(用vi工具編輯my.cnf文件,找到下列數據修改之)# The MySQL server [mysqld]
port= 3306
#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用「#」注釋此行)socket = /home/data/mysql/mysql.sock(加上此行)7.6、修改MySQL啟動腳本/etc/rc.d/init.d/mysql最後,需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。
[root@test1 etc]# vi/etc/rc.d/init.d/mysql#datadir=/var/lib/mysql(注釋此行)datadir=/home/data/mysql (加上此行)7.7、重新啟動MySQL服務
/etc/rc.d/init.d/mysqlstart
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
八、MySQL的常用操作
注意:MySQL中每個命令後都要以分號;結尾。
8.1、MySQL常用操作命令
8.1.1、顯示資料庫列表:
show databases;
剛開始時才兩個資料庫:mysql和test。MySQL庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
8.1.2、顯示庫中的數據表:
use mysql; //打開庫,學過FOXBASE的一定不會陌生吧show tables;
8.1.3、顯示數據表的結構:
describe 表名;
8.1.4、建庫:
create database 庫名;
8.1.5、建表:
use 庫名;
create table 表名 (欄位設定列表);
8.1.6、刪庫和刪表:
drop database 庫名;
drop table 表名;
8.1.7、將表中記錄清空:
delete from 表名;
8.1.8、顯示表中的記錄:
select * from 表名;
8.1.9、增加記錄
例如:增加幾條相關紀錄。
mysql> insert into name values('','張三','男','1971-10-01');mysql> insert into name values('','白雲','女','1972-05-20');可用select命令來驗證結果。
mysql> select * from name;
+----+------+------+------------+
| id | xm | xb | csny |
+----+------+------+------------+
|1 | 張三 | 男 | 1971-10-01 |
|2 | 白雲 | 女 | 1972-05-20 |
+----+------+------+------------+
8.1.10、修改紀錄
例如:將張三的出生年月改為1971-01-10
mysql> update name set csny='1971-01-10' where xm='張三';8.1.11、刪除紀錄
例如:刪除張三的紀錄。
mysql> delete from name where xm='張三';
8.2、一個建庫和建表以及插入數據的實例
drop database if exists school; //如果存在SCHOOL則刪除create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,name char(10) not null,
address varchar(50) default 』深圳』,
year date
); //建表結束
//以下為插入欄位
insert into teacher values(』』,』glchengang』,』深圳一中』,』1976-10-10』);insert into teacher values(』』,』jack』,』深圳一中』,』1975-12-23』);註:在建表中(1)將ID設為長度為3的數字欄位:int(3)並讓它每個記錄自動加一:auto_increment並不能為空:not null而且讓他成為主欄位primary key(2)將NAME設為長度為10的字元欄位(3)將ADDRESS設為長度50的字元欄位,而且預設值為深圳。varchar和char有什麼區別 呢,只有等以後的文章再說了。(4)將YEAR設為日期欄位。
如果你在MySQL提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為school.sql,然後復制到c:\\下,並在DOS狀態進入目錄\\mysql\\bin,然後鍵入以下命令:
mysql -uroot -p密碼 < c:\\school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。
九 、修改資料庫結構
9.1、欄位操作
9.1.1、增加欄位
alter table dbname add column <欄位名><欄位選項>
9.1.2、修改欄位
alter table dbname change <舊欄位名> <新欄位名><選項>
9.1.3、刪除欄位
alter table dbname drop column <欄位名>
十、數據導出
數據導出主要有以下幾種方法:
使用select into outfile "filename"語句
使用mysqlmp實用程序
10.1、使用select into outfile "filename"語句可以在mysql的命令行下或在php程序中執行它。我下面以在mysql命令行下為 例。在php中使用時,將其改成相應的查詢進行處理即可。不過在使用這個命令時,要求用戶擁有file的許可權。如我們有一個庫為phptest,其中有一 個表為driver。現在要把driver卸成文件。執行命令:
mysql> use phptest;
Database Changed
mysql> select * from driver into outfile "a.txt";Query OK, 22 rows affected (0.05 sec)
上面就可以完成將表driver從資料庫中卸到a.txt文件中。注意文件名要加單引 號。那麼這個文件在哪呢?在mysql目錄下有一個data目錄,它即是資料庫文件所放的地方。每個庫在單獨佔一個子目錄,所以phptest的目錄為 c:\mysql\data\phptest(注意:我的mysql安裝在c:\mysql下)。好,現在我們進去,a.txt就是它。打開這個文件,可 能是:
1 Mika Hakinnen 1
2 David Coulthard 1
3 Michael Schumacher 2
4 Rubens Barrichello 2
...
可能還有很多記錄。每個欄位之間是用製表符分開的(\t)。那麼我們可以修改輸出文件 名的目錄,以便放在指定的位置。如"a.txt"可以改成"./a.txt"或"/a.txt"。其中"./a.txt"放在c:\mysql\data 目錄下了,而"/a.txt"文件則放在c:\目錄下了。所以select命令認為的當前目錄是資料庫的存放目錄,這里是c:\mysql\data。
使用select命令還可以指定卸出文件時,欄位之間的分隔字元,轉義字元,包括字元,及記錄行分隔字元。列在下面:
FIELDS
TERMINATED BY "\t"
[OPTIONALLY] ENCLOSED BY ""
ESCAPED BY ""
LINES
TERMINATED BY "\n"
TERMINATED 表示欄位分隔
[OPTIONALLY] ENCLOSED 表示欄位用什麼字元包括起來,如果使用了OPTIONALLY則只有CHAR和VERCHAR被包括ESCAPED 表示當需要轉義時用什麼作為轉義字元LINES TERMINATED 表示每行記錄之間用什麼分隔上面列的是預設值,而且這些項都是可選的,不選則使用預設值。可以根據需要進行修改。給出一個例子如下:
mysql> select * from driver into outfile "a.txt" fields terminated by ","enclosed by """;
Query OK, 22 rows affected (0.06 sec)
結果可能如下:
"1","Mika","Hakinnen","1"
"2","David","Coulthard","1"
"3","Michael","Schumacher","2"
"4","Rubens","Barrichello","2"
...
可以看到每個欄位都用","進行了分隔,且每個欄位都用"""包括了起來。注意,行記錄分隔符可以是一個字元串,請大家自行測試。不過,如果輸出文件在指定目錄下如果存在的話就會報錯,先刪除再測試即可。
10.2、使用mysqlmp實用程序
從上面的select方法可以看出,輸出的文件只有數據,而沒有表結構。而且,一次只 能處理一個表,要處理多個表則不是很容易的。不過可以將select命令寫入一個sql 文件(復制文本應該是很容易的吧),然後在命令行下執行即可:mysql 庫名先來個最簡單的吧:
mysqlmp phptest > a.sql
可能結果如下:
# MySQL mp 7.1
#
# Host: localhost Database: phptest
#--------------------------------------------------------# Server version 3.22.32-shareware-debug
#
# Table structure for table "driver"
#
CREATE TABLE driver (
drv_id int(11) DEFAULT "0" NOT NULL auto_increment,drv_forename varchar(15) DEFAULT "" NOT NULL,drv_surname varchar(25) DEFAULT "" NOT NULL,drv_team int(11) DEFAULT "0" NOT NULL,
PRIMARY KEY (drv_id)
);
#
# Dumping data for table "driver"
#
INSERT INTO driver VALUES (1,"Mika","Hakinnen",1);INSERT INTO driver VALUES (2,"David","Coulthard",1);INSERT INTO driver VALUES (3,"Michael","Schumacher",2);INSERT INTO driver VALUES (4,"Rubens","Barrichello",2);...
如果有多表,則分別列在下面。可以看到這個文件是一個完整的sql文件,如果要將 其導入到其它的資料庫中可以通過命令行方式,很方便:mysql phptest < a.sql。如果將數據從本地傳到伺服器上,則可以將這個文件上傳,然後在伺服器通過命令行方式裝入數據。
如果只想卸出建表指令,則命令如下:
mysqlmp -d phptest > a.sql
如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:
mysqlmp -t phptest > a.sql
那麼如果我只想要數據,而不想要什麼sql命令時,應該如何操作呢?
mysqlmp -T./ phptest driver
其中,只有指定了-T參數才可以卸出純文本文件,表示卸出數據的目錄,./表示當前目 錄,即與mysqlmp同一目錄。如果不指定driver表,則將卸出整個資料庫的數據。每個表會生成兩個文件,一個為.sql文件,包含建表執行。 另一個為.txt文件,只包含數據,且沒有sql指令。
對卸出的數據文件,也可以同select方法一樣,指定欄位分隔符,包括字元,轉義欄位,行記錄分隔符。參數列在下面:
--fields-terminated-by= 欄位分隔符
--fields-enclosed-by= 欄位包括符
--fields-optionally-enclosed-by= 欄位包括符,只用在CHAR和VERCHAR欄位上--fields-escaped-by= 轉義字元
--lines-terminated-by= 行記錄分隔符
我想大家應該明白這些參數的意思了吧。一個例子如下:
mysqlmp -T./ --fields-terminated-by=, --fields-enclosed-by=" phptest driver輸出結果為:
"1","Mika","Hakinnen","1"
"2","David","Coulthard","1"
"3","Michael","Schumacher","2"
"4","Rubens","Barrichello","2"
...
請注意字元的使用。
10.3、小結
以上為使用select和mysqlmp實用程序來卸出文本的方法。select適合利用程序進行處理,而mysqlmp則為手工操作,同時提供強大的導出功能,並且可以處理整個庫,或庫中指定的多表。大家可以根據需求自行決定使用。
同時還有一些方法,如直接資料庫文件拷貝也可以,但是移動後的資料庫系統與原系統應一致才行。這里就不再提了。
十一、數據導入
同導出相類似,導入也有兩種方法:
使用LOAD DATA INFILE "filename"命令
使用mysqlimport實用程序
使用sql文件
由於前兩個處理與導出處理相似,只不過是它們的逆操作,故只給出幾種命令使用的例子,不再解釋了,大家可以自行查閱手冊。
11.1、使用load命令:
load data infile "driver.txt" into table driver fields terminated by ","enclosed by """;
11.2、使用mysqlimport實用程序:
mysqlimport --fields-terminated-by=, --fields-enclosed-by=" phptest driver.txt11.3、使用SQL文件
則可以使用由mysqlmp導出的sql文件,在命令行下執行mysql庫名。
首先要聲明一點,大部分情況下,修改MySQL是需要有mysql里的root許可權的,所以一般用戶無法更改密碼,除非請求管理員。
方法一
使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用PASSWORD函數。
方法二
使用mysqladmin,這是前面聲明的一個特例。
mysqladmin -u root -p password mypasswd
輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改為 mypasswd。把命令里的root改為你的用戶名,你就可以改你自己的密碼了。當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的。而且mysqladmin無法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root許可權: