我在CU上整理的MySQL FAQ

2021-08-25 10:52:02 字數 3487 閱讀 3645

q: 如何安裝lamp(linux+apache+mysql+php)

a:[url]

q: 如何登入mysql

a:使用mysql提供的客戶端工具登入

#path_to_mysql/bin/mysql -uuser -ppassword dateabase

q: 忘記mysql的root密碼,怎麼修改

a:如果 mysql 正在執行,首先殺之: killall -term mysqld。

啟動 mysql :path_to_mysql/bin/mysqld --skip-grant-tables &

就可以不需要密碼就進入 mysql 了。

然後就是

mysql>use mysql

mysql>update user set password=password("new_pass") where user="root";

mysql>flush privileges;

重新殺 mysql ,用正常方法啟動 mysql

一定注意:很多新手沒有用password=password("..."),而是直接password="..."所以改掉密碼不好使

q: 為什麼mysqld起來了,卻無法登入,提示"/var/lib/mysql/mysql.sock"不存在

a:這種情況大多數是因為你的mysql是使用rpm方式安裝的,它會自動尋找 /var/lib/mysql/mysql.sock 這個檔案,

通過unix socket登入mysql。

常見解決辦法如下:

1、建立/修改檔案 /etc/my.cnf,至少增加/修改一行

[mysql]

[client]

socket = /tmp/mysql.sock

#在這裡寫上你的mysql.sock的正確位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下

2、指定ip位址,使用tcp方式連線mysql,而不使用本地sock方式

#mysql -h127.0.0.1 -uuser -ppassword

3、為 mysql.sock 加個連線,比如說實際的mysql.sock在 /tmp/ 下,則

#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可

q: 如何修改mysql使用者密碼

a:大致有2種方法:

1、mysql>mysql -uroot -p*** mysql

mysql>update user set password=password('new_password') where user='user';;

mysql>flush privileges;

2、格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼

#mysqladmin -uroot -password ab12

注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。

q: 如何新增乙個mysql使用者

a:格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"

例1、增加乙個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入 mysql,然後鍵入以下命令:

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頁來訪問了。

mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

如果你不想test2有密碼,可以再打乙個命令將密碼消掉。

mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";

另外,也可以通過直接往user表中插入新紀錄的方式來實現。

q: 如何檢視mysql有什麼資料庫

a:mysql>show databases;

q: 如何檢視資料庫下有什麼表

a:mysql>show tables;

q: 如何匯出資料

a:有幾種方法,如下:

1、使用mysqldump

#mysqldump -uuser -ppassword -b database --tables table1 --tables table2 > dump_data_20051206.sql

詳細的引數

2、backup to語法

mysql>backup table tbl_name[,tbl_name...] to '/path/to/backup/directory';

詳細請檢視mysql手冊

3、mysqlhotcopy

#mysqlhotcopy db_name [/path/to/new_directory]

或#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

或#mysqlhotcopy db_name./regex/

詳細請檢視mysql手冊

4、select into outfile

詳細請檢視mysql手冊

5、客戶端命令列

#mysql -uuser -ppassword -e "sql statements" database > result.txt

以上各種方法中,以mysqldump最常用

q: 如何在命令列上執行sql語句

a:#mysql -uuser -ppassword -e "sql statements" database

q: 如何匯入備份出來的檔案

a:常見幾種方法如下:

1、由mysqldump出來的檔案

#mysql -uuser -ppassword [database] < dump.sql

2、檔案型別同上,使用source語法

mysql>source /path_to_file/dump.sql;

3、按照一定格式儲存的文字檔案或csv等檔案

#mysqlimport [options] database file1 [file2....]

詳細請檢視mysql手冊

4、檔案型別同上,也可以使用load data語法匯入

詳細請檢視mysql手冊

我在CU上整理的MySQL FAQ

q 如何安裝lamp linux apache mysql php q 如何登入mysql a 使用mysql提供的客戶端工具登入 path to mysql bin mysql uuser ppassword dateabase q 忘記mysql的root密碼,怎麼修改 a 如果 mysql 正...

我在LINUX上常用到的一些命令整理中

時常在linux上做資料庫的操作 mysqldump進行匯出資料庫的指令碼檔案 mysqldump u 使用者名稱 p 資料庫名 表名 路徑 sql 刪除檔案 rm rf 目錄名字 r 就是向下遞迴,不管有多少級目錄,一併刪除 f 就是直接強行刪除,不作任何提示的意思 tomcat的重啟 到 usr...

我在blogchina上的家開張了

其實,在blogchina上的家早在好幾個月前就申請了下來。原因自然是不用說了,都是因為csdn的blog實在是太讓人難受了。但是很懷念csdn這裡的技術氛圍,而在blogchina上則有點像 蘿蔔開會 讓我一直不能接受。因此便把它撂下了,繼續忍受著csdn blog的折磨 痛並快樂著!直到前一段時...