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