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 数据表名;

 

 

 

 

 

 

 

 

 

 

 

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

相关文章
相关标签/搜索