在紅帽系統(tǒng)添加mysql的方法:首先以root用戶登錄紅帽系統(tǒng);然后創(chuàng)建mysql用戶和mysql組;接著設(shè)定數(shù)據(jù)存儲(chǔ)目錄;最后進(jìn)入mysql目錄,手動(dòng)執(zhí)行數(shù)據(jù)庫(kù)初始化腳本并進(jìn)行相關(guān)配置文件修改即可。
推薦:《mysql視頻教程》
在Redhat紅帽系統(tǒng)中編譯安裝MySQL
0、以root用戶登錄系統(tǒng),進(jìn)行如下操作
可以避免一些麻煩,如:安裝完成之后無(wú)法設(shè)定密碼,看不到mysql庫(kù)。
1、將通用二進(jìn)制壓縮包解壓縮至 /usr/local 官方的要求,并且目錄名稱必須是mysql
- 進(jìn)入壓縮包目錄,執(zhí)行如下命令,解壓縮
tar xf mysql****.tar.gz -C /usr/local- 創(chuàng)建鏈接
cd /usr/local
ln -sv mysql***** mysql
2、創(chuàng)建mysql用戶mysql組(超過(guò)500的就不是系統(tǒng)用戶了,系統(tǒng)用戶沒有家目錄)
groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 mysql
進(jìn)入mysql目錄,里面有個(gè)INSTALL-BINARY的文件,里面有具體的安裝說(shuō)明。
3、修改mysql目錄下所有文件的屬主屬組
chown -R mysql.mysql /usr/local/mysql/*
4、設(shè)定數(shù)據(jù)存儲(chǔ)目錄
- 創(chuàng)建數(shù)據(jù)目錄:(根據(jù)需要指定)
- 修改數(shù)據(jù)目錄權(quán)限:
chown -R mysql.mysql 數(shù)據(jù)目錄(指定數(shù)據(jù)目錄屬主屬組為mysql用戶mysql組)
chmod o-rx 數(shù)據(jù)目錄 (其它用戶沒有任何權(quán)限)
保證數(shù)據(jù)目錄的屬主屬組是mysql,其他用戶沒有任何權(quán)限
5、進(jìn)入mysql目錄,手動(dòng)執(zhí)行數(shù)據(jù)庫(kù)初始化腳本
scripts/mysql_install_db –user=mysql –datadir=數(shù)據(jù)目錄
6、腳本執(zhí)行完之后,要把mysql目錄的屬主改成root
chown -R root /usr/local/mysql/*
7、在mysql/support-files目錄下有mysql.server(mysql啟動(dòng)腳本)
- 復(fù)制并重命名該腳本
cp support-files/mysql.server /etc/init.d/mysqld- 查看一下mysqld是否有執(zhí)行權(quán)限,沒有就給執(zhí)行權(quán)限
- 將mysqld加入到服務(wù)列表
chkconfig –add mysqld- 查看是否自動(dòng)啟動(dòng)是否開啟
chkconfig –list mysqld ?(2 3 4 5 為on即可)
8、此時(shí)mysqld還不能啟動(dòng),需要修改一下配置文件
- 默認(rèn)位置: /etc/my.cnf
- mysql讀取配置文件的方式非常獨(dú)特
mysql配置文件是片段式的、集中式的(可以為多個(gè)服務(wù)配置)
[mysql]——客戶端配置 [mysqld]——服務(wù)端配置 [client]——對(duì)所有的客戶端程序都生效
- mysql讀取配置文件的順序:
/etc/my.cnf –> /etc/mysql/my.cnf
–> $BASEDIR/my.cnf (通常是安裝目錄)
–> ~/.my.cnf (用戶家目錄下的配置文件,即使mysql用戶沒有家目錄也找一遍)
如果找到的四處配置文件有沖突,以最后一個(gè)為準(zhǔn)(后一個(gè)覆蓋前一個(gè)
即使沒有任何配置文件,mysql也能跑,在support-files目錄下提供了一堆默認(rèn)配置文件
- 復(fù)制一個(gè)配置文件到 /etc/my.cnf
cp support-files/my-large.cnf /etc/my.cnf
- 進(jìn)行編輯修改配置文件
vi /etc/my.cnf- 在[mysqld]片段中加上數(shù)據(jù)目錄配置信息,至關(guān)重要
datadir = /數(shù)據(jù)目錄
9、 啟動(dòng)mysqld服務(wù)
service mysqld start
查看啟動(dòng)狀態(tài)
netstat -tnlp
10、進(jìn)入mysql數(shù)據(jù)庫(kù)
執(zhí)行mysql發(fā)現(xiàn)找不到命令
查看 ls /usr/local/mysql/bin/,發(fā)現(xiàn)有 mysql 命令
需要將mysql命令添加至系統(tǒng)目錄
創(chuàng)建腳本文件:
vi /etc/profile.d/mysql.sh
添加 export PATH=$PATH:/usr/local/mysql/bin
保存退出
重新登陸,再次執(zhí)行 mysql 就能進(jìn)入mysql數(shù)據(jù)庫(kù)啦
11、mysql服務(wù)器維護(hù)了兩類變量
- 服務(wù)器變量:定義MySQL服務(wù)器運(yùn)行特征
查看命令:show global variables [like ‘data%’] (調(diào)優(yōu)時(shí)使用)- 狀態(tài)變量:保存了MySQL服務(wù)器運(yùn)行時(shí)的統(tǒng)計(jì)數(shù)據(jù)
查看命令:show global status [like ‘datadir’] (實(shí)時(shí)監(jiān)控使用)
12、設(shè)定密碼
[方法一]在mysql提示符下執(zhí)行
mysql>set password for ‘username’@’host’=password(‘password’);
修改用戶信息之后,要重讀授權(quán)表
mysql>flush privileges;
[方法二]在linux命令提示符下執(zhí)行
# mysqladmin -uUsername -hHost -p password ‘password'(如果沒有密碼可以省略-p)
[方法三]修改mysql庫(kù)中的user表
update user set Password=password(“password”) where user=”user” and host=”***”
創(chuàng)建mysql的root用戶遠(yuǎn)程訪問(wèn)(對(duì)所有庫(kù).所有表)
mysql>grant all privileges on . to ‘root’@’192.16.%.%’ identified by “password”;
重讀授權(quán)表
mysql>flush privileges;
[方法四]安裝完之后提示的密碼修改方式:
./bin/mysqladmin -u root password ‘new-password’
./bin/mysqladmin -u root -h localhost.localdomain password ‘new-password’
13、將mysql幫助文檔添加至幫助命令
vi /etc/man.config
添加一行
MANPATH /usr/local/mysql/man
保存退出
14、創(chuàng)建數(shù)據(jù)庫(kù)并指定字符集
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
15、創(chuàng)建用戶用于SqlYog登錄
# 創(chuàng)建一個(gè)本地登錄的用戶,并授予全部權(quán)限 mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' -> WITH GRANT OPTION; # 創(chuàng)建一個(gè)遠(yuǎn)程登錄用戶,并授予全部權(quán)限 mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' -> WITH GRANT OPTION; # 最厚要刷新一下授權(quán)表 mysql> flush privileges;
原文: Host ‘xxx.xx.xxx.xxx’ is not allowed to connect to this MySQL server
16、數(shù)據(jù)備份與恢復(fù)
(一)數(shù)據(jù)備份
# 1、備份一個(gè)數(shù)據(jù)庫(kù)(根據(jù)提示輸入密碼,如果備份遠(yuǎn)程數(shù)據(jù)庫(kù),需要加上 -h 參數(shù)) $ mysqldump -h host -u username -p database_name > back_name.sql # 2、備份 test 數(shù)據(jù)庫(kù)中的 emp 表(根據(jù)提示輸入密碼) $ mysqldump -u username -p test emp > emp.sql # 3、備份 test 數(shù)據(jù)庫(kù)中的 emp 表 和 dept 表(根據(jù)提示輸入密碼) $ mysqldump -u username -p test emp dept > emp_dept.sql # 4、備份多個(gè)數(shù)據(jù)庫(kù) $ mysqldump -hhostname -uusername -ppassword databasename1 databasename2> multibackupfile.sql # 5、備份所有的數(shù)據(jù)庫(kù) $ mysqldump –all-databases > allbackupfile.sql # 6、只備份數(shù)據(jù)庫(kù)結(jié)構(gòu) $ mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
(二)數(shù)據(jù)恢復(fù)
# 1、還原數(shù)據(jù)庫(kù)(根據(jù)提示輸入密碼,如果備份遠(yuǎn)程數(shù)據(jù)庫(kù),需要加上 -h 參數(shù)) $ mysql -hhostname -uusername -ppassword databasename < backupfile.sql # 2、導(dǎo)入數(shù)據(jù)( 常用source命令,進(jìn)入某個(gè)數(shù)據(jù)庫(kù),指定備份的腳本文件) mysql> source d:test.sql # 3、將數(shù)據(jù)庫(kù)遷移至新服務(wù)器 $ mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename