Linux下裝置與應用MySQL具體引見。本站提示廣大學習愛好者:(Linux下裝置與應用MySQL具體引見)文章只能為提供參考,不一定能成為您想要的結果。以下是Linux下裝置與應用MySQL具體引見正文
1、裝置Mysql
1、下載MySQL的裝置文件
裝置MySQL須要上面兩個文件:
MySQL-server-4.0.16-0.i386.rpm
MySQL-client-4.0.16-0.i386.rpm
下載地址為:http://dev.mysql.com/downloads/mysql-4.0.html,翻開此網頁,下拉網頁找到“Linux x86 RPM downloads”項,找到“Server”和“Client programs”項,下載須要的上述兩個rpm文件。
2、裝置MySQL
rpm文件是Red Hat公司開辟的軟件裝置包,rpm可以讓Linux在裝置軟件包時免去很多龐雜的手續。該敕令在裝置經常用的參數是 –ivh ,個中i表現將裝置指定的rmp軟件包,V表現裝置時的具體信息,h表現在裝置時代湧現“#”符號來顯示今朝的裝置進程。這個符號將連續到裝置完成後才停滯。
1)裝置辦事器端
在有兩個rmp文件的目次下運轉以下敕令:
[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
顯示以下信息。
warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
。。。。。。(省略顯示)
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h test1 password 'new-password'
。。。。。。(省略顯示)
Starting mysqld daemon with databases from /var/lib/mysql
如湧現如上信息,辦事端裝置終了。測試能否勝利可運轉netstat看Mysql端口能否翻開,如翻開表現辦事曾經啟動,裝置勝利。Mysql默許的端口是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp00 0.0.0.0:3306 0.0.0.0:* LISTEN
下面顯示可以看出MySQL辦事曾經啟動。
2)裝置客戶端
運轉以下敕令:
[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...########################################### [100%]
1:MySQL-client ########################################### [100%]
顯示裝置終了。
用上面的敕令銜接mysql,測試能否勝利。
注:其實也能夠下載緊縮文件,到當地後直接解緊縮便可。
2、登錄MySQL
登錄MySQL的敕令是mysql, mysql 的應用語法以下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 與 password 分離是 MySQL 的用戶名與暗碼,mysql的初始治理帳號是root,沒有暗碼,留意:這個root用戶不是Linux的體系用戶。MySQL默許用戶是root,因為初始沒有暗碼,第一次進時只需鍵入mysql便可。
[root@test1 local]# mysql
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
湧現了“mysql>”提醒符,祝賀你,裝置勝利!
增長了暗碼後的登錄格局以下:
mysql -u root -p
Enter password: (輸出暗碼)
個中-u後跟的是用戶名,-p請求輸出暗碼,回車後在輸出暗碼處輸出暗碼。
留意:
1.這個mysql文件在/usr/bin目次下,與前面講的啟動文件/etc/init.d/mysql不是一個文件。
2.假如從當地登錄其他主機,則格局以下:
./mysql -u root -p -h 192.168.xx.xx
後面必需加./
3、MySQL的幾個主要目次
MySQL裝置完成後不象SQL Server默許裝置在一個目次,它的數據庫文件、設置裝備擺設文件和敕令文件分離在分歧的目次,懂得這些目次異常主要,特別關於Linux的初學者,由於 Linux自己的目次構造就比擬龐雜,假如弄不清晰MySQL的裝置目次那就無從談起深刻進修。
上面就引見一下這幾個目次。
1、數據庫目次
/var/lib/mysql/
2、設置裝備擺設文件
/usr/share/mysql(mysql.server敕令及設置裝備擺設文件)
3、相干敕令
/usr/bin(mysqladmin mysqldump等敕令)
4、啟動劇本
/etc/rc.d/init.d/(啟動劇本文件mysql的目次)
4、修正登錄暗碼
MySQL默許沒有暗碼,裝置終了增長暗碼的主要性是不問可知的。
1、敕令
usr/bin/mysqladmin -u root password 'new-password'
格局:mysqladmin -u用戶名 -p舊暗碼 password 新暗碼
2、例子
例1:給root加個暗碼123456。
鍵入以下敕令 :
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
注:由於開端時root沒有暗碼,所以-p舊暗碼一項便可以省略了。
3、測試能否修正勝利
1)不消暗碼登錄
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
顯示毛病,解釋暗碼曾經修正。
2)用修正後的暗碼登錄
[root@test1 local]# mysql -u root -p
Enter password: (輸出修正後的暗碼123456)
Welcome to the MySQL monitor. Commands end with ; or /g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql>
勝利!
這是經由過程mysqladmin敕令修正口令,也可經由過程修正庫來更改口令。
5、啟動與停滯
1、啟動
MySQL裝置完成後啟動文件mysql在/etc/init.d目次下,在須要啟動時運轉上面敕令便可。
[root@test1 init.d]# /etc/init.d/mysql start
2、停滯
/usr/bin/mysqladmin -u root -p shutdown
3、主動啟動
1)觀察mysql能否在主動啟動列表中
[root@test1 local]# /sbin/chkconfig –list
2)把MySQL添加到你體系的啟動辦事組外面去
[root@test1 local]# /sbin/chkconfig – add mysql
3)把MySQL從啟動辦事組外面刪除。
[root@test1 local]# /sbin/chkconfig – del mysql
6、更改MySQL目次
MySQL默許的數據文件存儲目次為/var/lib/mysql。假設要把目次移到/home/data下須要停止上面幾步:
1、home目次下樹立data目次
cd /home
mkdir data
2、把MySQL辦事過程停失落:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql全部目次移到/home/data
mv /var/lib/mysql /home/data/
如許就把MySQL的數據文件挪動到了/home/data/mysql下
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.cnf
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 (加上此行)
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、從新啟動MySQL辦事
/etc/rc.d/init.d/mysql start
或用reboot敕令重啟Linux
假如任務正常挪動就勝利了,不然對比後面的7步再檢討一下。
7、MySQL的經常使用操作
留意:MySQL中每一個敕令後都要以分號;開頭。
1、顯示數據庫
mysql> show databases;
+----------+
| Database |
+----------+
| mysql|
| test |
+----------+
2 rows in set (0.04 sec)
Mysql剛裝置完有兩個數據庫:mysql和test。mysql庫異常主要,它外面有MySQL的體系信息,我們改暗碼和新增用戶,現實上就是用這個庫中的相干表停止操作。
2、顯示數據庫中的表
mysql> use mysql; (翻開庫,對每一個庫停止操作就要翻開此庫)
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv|
| db |
| func|
| host|
| tables_priv |
| user|
+-----------------+
6 rows in set (0.01 sec)
3、顯示數據表的構造:
describe 表名;
4、顯示表中的記載:
select * from 表名;
例如:顯示mysql庫中user表中的記載。一切能對MySQL用戶操作的用戶都在此表中。
Select * from user;
5、建庫:
create database 庫名;
例如:創立一個名字位aaa的庫
mysql> create databases aaa;
6、建表:
use 庫名;
create table 表名 (字段設定列表);
例如:在剛創立的aaa庫中樹立表name,表中有id(序號,主動增加),xm(姓名),xb(性別),csny(出生年代)四個字段
use aaa;
mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
可以用describe敕令觀察剛樹立的表構造。
mysql> describe name;
+-------+---------+------+-----+---------+----------------+
| Field | Type| Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id| int(3) | | PRI | NULL| auto_increment |
| xm| char(8) | YES | | NULL||
| xb| char(2) | YES | | NULL||
| csny | date| YES | | NULL||
+-------+---------+------+-----+---------+----------------+
7、增長記載
例如:增長幾條相干記載。
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、修正記載
例如:將張三的出身年代改成1971-01-10
mysql> update name set csny='1971-01-10' where xm='張三';
9、刪除記載
例如:刪除張三的記載。
mysql> delete from name where xm='張三';
10、刪庫和刪表
drop database 庫名;
drop table 表名;
11.檢查mysql版本
在mysql5.0中敕令以下:
show variables like 'version';
或許:select version();
8、增長MySQL用戶
格局:grant select on 數據庫.* to 用戶名@登錄主機 identified by "暗碼"
例1、增長一個用戶user_1暗碼為123,讓他可以在任何主機上登錄,並對一切數據庫有查詢、拔出、修正、刪除的權限。起首用以root用戶連入MySQL,然後鍵入以下敕令:
mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
例1、增長的用戶是非常風險的,假如曉得了user_1的暗碼,那末他便可以在網上的任何一台電腦上登錄你的MySQL數據庫並對你的數據隨心所欲了,處理方法見例2。
例2、增長一個用戶user_2暗碼為123,讓此用戶只可以在localhost上登錄,並可以對數據庫aaa停止查詢、拔出、修正、刪除的操作(localhost指當地主機,即MySQL數據庫地點的那台主機),如許用戶即便用曉得user_2的暗碼,他也沒法從網上直接拜訪數據庫,只能經由過程 MYSQL主機來操作aaa庫。
mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";
用新增的用戶假如登錄不了MySQL,在登錄時用以下敕令:
mysql -u user_1 -p -h 192.168.113.50 (-h後跟的是要登錄主機的ip地址)
9、備份與恢復
1、備份
例如:將上例創立的aaa庫備份到文件back_aaa中
[root@test1 root]# cd /home/data/mysql (進入到庫目次,本例庫已由val/lib/mysql轉到/home/data/mysql,見上述第六部門內容)
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
2、恢復
[root@test mysql]# mysql -u root -p ccc < back_aaa