linux 安装 mysql 5.6 rpm版本 完整版

mysql 5.6 rpm  官方版本下载:

http://pan.baidu.com/s/1i51zRiX            提取码:zq76

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1:WinSCP 连接服务器  putty连接终端

    上传下载的   MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar 到服务器。

-------------------------------------------------------------------------------------------------------------------------------------

查看是否已存在mysql的其他版本、将其卸载

1:#rpm -qa | grep -i mysql

若有显示的mysql 版本 例如

mysql-libs-5.1.52-1.el6_0.1.i686

那么将其卸载

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。

[[email protected] 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:删除用户数组

[[email protected] ~]# more /etc/passwd | grep mysql
mysql:x:101:501::/home/mysql:/bin/bash
[[email protected] ~]# more /etc/shadow | grep mysql
mysql:!!:16496::::::
[[email protected] ~]# more /etc/group | grep mysql
mysql:x:501:
[[email protected] ~]# userdel mysql
[[email protected] ~]# groupdel mysql
groupdel: group mysql does not exist
[[email protected] ~]#

-------------------------------------------------------------------------------------------------------------------------------------

执行命令:

linux 安装 mysql 5.6 rpm版本 完整版

得到三个rpm文件,分别为

linux 安装 mysql 5.6 rpm版本 完整版

执行:

linux 安装 mysql 5.6 rpm版本 完整版

linux 安装 mysql 5.6 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

linux 安装 mysql 5.6 rpm版本 完整版 *一定要加载端口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;      

linux 安装 mysql 5.6 rpm版本 完整版

远程连接设置完成。

可能某些人会有远程连接的时候、连接速度会很慢才连接上。那么下面处理

# 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 [email protected]"%" 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

                linux 安装 mysql 5.6 rpm版本 完整版

         

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 [email protected] identified by '1234';

   mysql>flush privileges;//刷新系统权限表

  格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

  1.4 如果想指定部分权限给一用户,可以这样来写:

  mysql>grant select,update on testDB.* to [email protected] identified by '1234';

  mysql>flush privileges; //刷新系统权限表

  1.5 授权test用户拥有所有数据库的某些权限:   

  mysql>grant select,delete,update,create,drop on *.* to [email protected]"%" identified by "1234";

     //test用户对所有数据库都有select,delete,update,create,drop 权限。

  //@"%" 表示对所有非本地主机授权,不包括localhost。(localhost地址设为127.0.0.1,如果设为真实的本地地址,不知道是否可以,没有验证。)

 //对localhost授权:加上一句grant all privileges on testDB.* to [email protected] 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 数据表名;

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

转载于:https://my.oschina.net/wxpi/blog/677172