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