linux 安裝 mysql 5.6 rpm版本 完整版

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 數據表名;

 

 

 

 

 

 

 

 

 

 

 

                                                                                        --------------------------------------  盻神

相關文章
相關標籤/搜索