mysql 5.6 rpm 官方版本下載:node
http://pan.baidu.com/s/1i51zRiX 提取碼:zq76mysql
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------linux
1:WinSCP 鏈接服務器 putty鏈接終端sql
上傳下載的 MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar 到服務器。數據庫
-------------------------------------------------------------------------------------------------------------------------------------數組
查看是否已存在mysql的其餘版本、將其卸載安全
1:#rpm -qa | grep -i mysqlbash
如有顯示的mysql 版本 例如服務器
mysql-libs-5.1.52-1.el6_0.1.i686tcp
那麼將其卸載
yum -y remove mysql-libs-5.1.52-1.el6_0.1.i686
2:rpm -qa | grep -i mysql
若是顯示:
MySQL-client-5.1.62-1.glibc23.i386
MySQL-server-5.1.62-1.glibc23.i386
卸載:
rpm -remove mysql-libs-5.1.52-1.el6_0.1.i686
或者
rpm -e mysql-libs-5.1.52-1.el6_0.1.i686
若沒法刪除、能夠用強制刪除命令 好比:rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.i686
3:刪除mysql關聯文件
最好實用find命令查看MySQL數據庫相關的文件,方便後面完全刪除MySQL。
[root@DB-Server init.d]# find / -name mysql
/etc/rc.d/init.d/mysql
/etc/logrotate.d/mysql
/var/lock/subsys/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/include/mysql
/usr/include/mysql/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/lib64/mysql
4:刪除用戶數組
[root@DB-Server ~]# more /etc/passwd | grep mysql
mysql:x:101:501::/home/mysql:/bin/bash
[root@DB-Server ~]# more /etc/shadow | grep mysql
mysql:!!:16496::::::
[root@DB-Server ~]# more /etc/group | grep mysql
mysql:x:501:
[root@DB-Server ~]# userdel mysql
[root@DB-Server ~]# groupdel mysql
groupdel: group mysql does not exist
[root@DB-Server ~]#
-------------------------------------------------------------------------------------------------------------------------------------
執行命令:
獲得三個rpm文件,分別爲
執行:
安裝server 和client 端
安裝完成後在/usr/share/mysql目錄中會有一個mysql的啓動腳本mysql.server及示例配置文件等(如my-huge.cnf、my-large.cnf、my-medium.cnf)
啓動mysql
/etc/init.d/mysql start 或 service mysql start
中止mysql
/etc/init.d/mysql stop 或 service mysql stop
mysql安裝好後目錄結構以下:
工具程序在/usr/bin目錄中---ls /usr/bin/mysql*
服務器程序/usr/sbin/mysqld
數據目錄/var/lib/mysql
-------------------------------------------------------------------------------------------------------------------------------------
2:至此安裝完成、開始配置:
1:首先linux防火牆要開啓3306端口號。覺得mysql是用3306端口的。
執行: vi /etc/sysconfig/iptables
*必定要加載端口22的下面、加在別處無效、
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
防火牆開啓其餘端口號/都是這種方式。
service iptables restart 重啓防火牆、OK!
-------------------------------------------------------------------------------------------------------------------------------------2:mysql 安裝完畢後直接登錄
# mysql -uroot -p
此時可能存在登陸不上的問題、由於你沒有密碼哈哈。
解決方案不少、這裏提供一張通用解決方案、------- 安全模式下登錄mysql 、不用帳號密碼、而後進去更新root的賬號密碼。
首先,關閉mysql
# service mysql stop
而後
# mysqld_safe --skip-grant-tables &
等待starting完畢、
在執行 # mysql -uroot -p
不用密碼登入mysql
mysql>use mysql;
mysql> update user set password=password("root") where user='root';
mysql> flush privileges;
mysql> exit;
#service mysql restart
密碼生效;
-------------------------------------------------------------------------------------------------------------------------------------
3:遠程鏈接mysql、Navicat等工具鏈接的時候、就是遠程鏈接、而不是登錄的帳號密碼了。
若遠程鏈接帳號密碼都是對的、可是鏈接不上、可能就是防火牆沒有添加3306端口、添加上就OK了
配置:
登錄mysql
mysql>use mysql;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql> flush privileges;
mysql> exit;
遠程鏈接設置完成。
可能某些人會有遠程鏈接的時候、鏈接速度會很慢才鏈接上。那麼下面處理
# vi /etc/my.cnf
在配置文件中的mysqld下加入下面兩行、就OK了。
[mysqld]
skip-name-resolve
skip-grant-tables
-------------------------------------------------------------------------------------------------------------------------------------
安裝完成 從新鏈接數據庫、設置遠程鏈接的時候。use mysql 可能會報錯
1:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
若是出現這個錯誤、那麼只須要執行一句操做便可:
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
是否是很逗比?
刪除 更新遠程鏈接的帳戶名密碼方法:
方法一:
用root用戶登錄,而後:
grant all privileges on *.* to 建立的用戶名 @"%" identified by "密碼";
flush privileges; * 刷新剛纔的內容*
格式:grant 權限 on 數據庫名.表名 to 用戶@登陸主機 identified by "用戶密碼";
@ 後面是訪問mysql的客戶端IP地址(或是 主機名) % 表明任意的客戶端,若是填寫 localhost 爲
本地訪問(那此用戶就不能遠程訪問該mysql數據庫了)。
同時也能夠爲現有的用戶設置是否具備遠程訪問權限。以下:
use mysql;
update db set host = ‘%’ where user = ‘用戶名’; (若是寫成 host=localhost 那此用戶就不具備遠程訪問權限)
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%' IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY ‘password’ WITH GRANT OPTION
GRANT ALL PRIVILEGES ON *.* TO admin@"%" IDENTIFIED BY ‘password’ WITH GRANT OPTION
撤權並刪除用戶
要取消一個用戶的權限,使用REVOKE語句。REVOKE的語法很是相似於GRANT語句,除了TO用FROM取代而且沒有INDETIFED BY和WITH GRANT OPTION子句:
REVOKE privileges (columns) ON what FROM user
user部分必須匹配原來GRANT語句的你想撤權的用戶的user部分。privileges部分不需匹配,你能夠用GRANT語句受權,而後用REVOKE語句只撤銷部分權限。
REVOKE語句只刪除權限,而不刪除用戶。即便你撤銷了全部權限,在user表中的用戶記錄依然保留,這意味着用戶仍然能夠鏈接服務器。要徹底刪除一個用戶,你必須用一條DELETE語句明確從user表中刪除用戶記錄:
use mysql;
DELETE FROM user WHERE User=’user_name’ and Host=’host_name’;
FLUSH PRIVILEGES;
DELETE語句刪除用戶記錄,而FLUSH語句告訴服務器重載受權表。(當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改受權表時不是。)
----------------------------------------------------------------------------------------------------------------------------------
2:Starting MySQL. ERROR! The server quit without updating PID file
當出現這個錯誤的時候、就須要你從新初始化你的數據庫權限等等。緣由多是以前在這臺機器上有裝過mysql、起了衝突?可是如下是能解決的方案
1):找到這幾個文件與文件夾:
Mysql的初始化表的文件 mysql_install_db /usr/bin/mysql_install_db
my.conf /etc/my.conf 若沒有 請下載附件粘貼到目錄
連接:http://pan.baidu.com/s/1c2yXKWw 密碼:cw2a
mysql.sock /var/lib/mysql 若沒有請自行在目錄下新建文件
2):初始化須要的環境
連接:http://pan.baidu.com/s/1pKQf0CF 密碼:ldcu 安裝libiao環境
執行:/usr/bin/下 mysql_install_db --user=mysql
若報錯
-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory
則須要安裝 perl 環境 。安裝命令:yum -y install perl perl-devel
繼續執行初始化命令便可 /usr/bin/下 mysql_install_db --user=mysql
初始化完成後、啓動mysql
3:mysql鏈接速度慢
在局域網內鏈接其餘機器的MYSQL,發現速度慢的很,不知道什麼緣由,總有幾秒的延遲.
遠程鏈接mysql異常緩慢,常常執行一條命令,而後要等個10幾秒執行下一條。解決方法是在mysql的my.ini中的mysqld節加入skip-name-resolve,該命令參數避免了對主機名進行解析從而加快鏈接速度。
後來在網上發現解決方法,my.ini裏面添加<linux中在/etc/my.cnf>
[mysqld]
skip-name-resolve
skip-grant-tables
附:用戶受權
受權格式:grant 權限 on 數據庫.* to 用戶名@登陸主機 identified by "密碼";
1.1 登陸MYSQL(有ROOT權限),這裏以ROOT身份登陸:
@>mysql -u root -p
@>密碼
1.2 首先爲用戶建立一個數據庫(testDB):
mysql>create database testDB;
1.3 受權test用戶擁有testDB數據庫的全部權限(某個數據庫的全部權限):
mysql>grant all privileges on testDB.* to test@localhost identified by '1234';
mysql>flush privileges;//刷新系統權限表
格式:grant 權限 on 數據庫.* to 用戶名@登陸主機 identified by "密碼";
1.4 若是想指定部分權限給一用戶,能夠這樣來寫:
mysql>grant select,update on testDB.* to test@localhost identified by '1234';
mysql>flush privileges; //刷新系統權限表
1.5 受權test用戶擁有全部數據庫的某些權限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";
//test用戶對全部數據庫都有select,delete,update,create,drop 權限。
//@"%" 表示對全部非本地主機受權,不包括localhost。(localhost地址設爲127.0.0.1,若是設爲真實的本地地址,不知道是否能夠,沒有驗證。)
//對localhost受權:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';便可。
2. 刪除用戶( 刪除遠程登陸的用戶)
@>mysql -u root -p
@>密碼
mysql>Delete FROM user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的數據庫
刪除帳戶及權限:>drop user 用戶名@'%';
>drop user 用戶名@ localhost;
3. 修改指定用戶密碼(遠程)
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password('新密碼') where User="test" and Host="localhost";
mysql>flush privileges;
4. 列出全部數據庫
mysql>show database;
5. 切換數據庫
mysql>use '數據庫名';
6. 列出全部表
mysql>show tables;
7. 顯示數據表結構
mysql>describe 表名;
8. 刪除數據庫和數據表
mysql>drop database 數據庫名;
mysql>drop table 數據表名;
-------------------------------------- 盻神