在CU上整理的MySQL的常見問題及解答
MySQL是很多人都非常熟悉的小型數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫性能不錯(cuò),所以贏得了很多用戶的青睞。本文中主要是為大家詳細(xì)講解有關(guān)在CU上整理的MySQL的常見問題及解答的知識(shí),相信大家通過下文的學(xué)習(xí),一定能夠很好的掌握MySQL的知識(shí)。
Q: 如何安裝LAMP(Linux+Apache+MySQL+PHP)
A:[url]http://www.freelamp.com/1003235699/index_html[/url]
Q: 如何使用rpm方式安裝mysql
A:首先下載合適的rpm包,例如下載了文件 MySQL-5.0.15-0.i386.rpm
用一下方法安裝:
#rpm -ivhU MySQL-5.0.15-0.i386.rpm
通常情況下,安裝完這個(gè)rpm包后,只具備有mysqld服務(wù)功能,其它相關(guān)的client程序和開發(fā)包還需要另外安裝
#rpm -ivhU MySQL-devel-5.0.15-0.i386.rpm
#rpm -ivhU MySQL-client-5.0.15-0.i386.rpm
Q: 如何安裝已經(jīng)編譯好了的mysql二進(jìn)制包
A:首先下載合適的二進(jìn)制包,例如下載了文件 mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local
#tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#chgrp -R mysql *
#bin/mysqld_safe --user=mysql &
有什么個(gè)性化的配置,可以通過創(chuàng)建 /etc/my.cnf 或者 /usr/local/mysql/database/my.cnf,增加相關(guān)的參數(shù)來實(shí)現(xiàn)。
Q: 如何自己編譯mysql
A:以redhat linux 9.0為例:
下載文件 mysql-4.1.13.tar.gz
#tar zxf mysql-4.1.13.tar.gz
#cd mysql-4.1.13
#./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/tmp/mysql.sock --enable-assembler \
--with-charset=complex --with-low-memory --with-mit-threads
#make
#make install
#groupadd mysql
#useradd -g mysql mysql
#chgrp -R mysql /usr/local/mysql/
#/usr/local/mysql/bin/mysqld_safe --user=mysql &
有什么個(gè)性化的配置,可以通過創(chuàng)建 /etc/my.cnf 或者 /usr/local/mysql/database/my.cnf,增加相關(guān)的參數(shù)來實(shí)現(xiàn)。
Q: 如何登錄MySQL
A:使用mysql提供的客戶端工具登錄
#PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabase
Q: 忘記MySQL的root密碼,怎么修改
A:如果 MySQL 正在運(yùn)行,首先殺之: killall -TERM mysqld。
啟動(dòng) MySQL :PATH_TO_MYSQL/bin/mysqld --skip-grant-tables &
就可以不需要密碼就進(jìn)入 MySQL 了。
然后就是
mysql>use mysql
mysql>update user set password=password("new_pass") where user="root";
mysql>flush privileges;
重新殺 MySQL ,用正常方法啟動(dòng) MySQL
一定注意:很多新手沒有用password=password("..."),而是直接password="..."所以改掉密碼不好使
Q: 為什么mysqld起來了,卻無法登錄,提示"/var/lib/mysql/mysql.sock"不存在
A:這種情況大多數(shù)是因?yàn)槟愕膍ysql是使用rpm方式安裝的,它會(huì)自動(dòng)尋找 /var/lib/mysql/mysql.sock 這個(gè)文件,
通過unix socket登錄mysql。
常見解決辦法如下:
1、
創(chuàng)建/修改文件 /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 加個(gè)連接,比如說實(shí)際的mysql.sock在 /tmp/ 下,則
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
Q: 如何修改mysql用戶密碼
A:大致有2種方法:
1、
mysql>mysql -uroot -pxxx mysql
mysql>update user set password=password('new_password') where user='user';;
mysql>flush privileges;
2、
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
#mysqladmin -uroot -password ab12
注:因?yàn)殚_始時(shí)root沒有密碼,所以-p舊密碼一項(xiàng)就可以省略了。
Q: 如何新增一個(gè)mysql用戶
A:格式:grant select on 數(shù)據(jù)庫.* to 用戶名@登錄主機(jī) identified by "密碼"
例1、增加一個(gè)用戶test1密碼為abc,讓他可以在任何主機(jī)上登錄,并對(duì)所有數(shù)據(jù)庫有查詢、插入、修改、刪除的權(quán)限。首先用以root用戶連入MYSQL,然后鍵入以下命令:
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用戶是十分危險(xiǎn)的,你想如某個(gè)人知道test1的密碼,那么他就可以在internet上的任何一臺(tái)電腦上登錄你的mysql數(shù)據(jù)庫并對(duì)你的數(shù)據(jù)可以為所欲為了,解決辦法見例2。
例2、增加一個(gè)用戶test2密碼為abc,讓他只可以在localhost上登錄,并可以對(duì)數(shù)據(jù)庫mydb進(jìn)行查詢、插入、修改、刪除的操作(localhost指本地主機(jī),即MYSQL數(shù)據(jù)庫所在的那臺(tái)主機(jī)),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數(shù)據(jù)庫,只能通過MYSQL主機(jī)上的web頁來訪問了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密碼,可以再打一個(gè)命令將密碼消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
另外,也可以通過直接往user表中插入新紀(jì)錄的方式來實(shí)現(xiàn)。
Q: 如何查看mysql有什么數(shù)據(jù)庫
A:mysql>show databases;
上文中為大家例舉了很多CU上整理的MySQL的常見問題以及解決方案,當(dāng)然這里只是為大家總結(jié)了一部分,更多的還需要大家在平時(shí)的工作中細(xì)心發(fā)現(xiàn),最后希望上文中涉及到的內(nèi)容能夠幫助到大家。