1、 MySQL安装包下载
官方下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads
根据Linux版本选择相对应安装包下载
2、 创建安装目录
mkdir /usr/local/mysql
把下载的安装包存放该目录
3、 解压安装包
tar -xvf MySQL-5.6.36-1.el6.x86_64.rpm-bundle.tar
解压文件详情
MySQL-client-5.6.36-1.el6.x86_64.rpm #MySQL客户端程序
MySQL-devel-5.6.36-1.el6.x86_64.rpm #MySQL的库和头文件
MySQL-embedded-5.6.36-1.el6.x86_64.rpm #MySQL的嵌入式程序
MySQL-shared-compat-5.6.36-1.el6.x86_64.rpm #RHEL兼容包
MySQL-shared-5.6.36-1.el6.x86_64.rpm #MySQL的共享库
MySQL-server-5.6.36-1.el6.x86_64.rpm #MySQL服务端程序
MySQL-test-5.6.36-1.el6.x86_64.rpm #MySQL的测试组件
4、为系统添加mysql组和mysql用户
添加mysql组
groupadd mysql
为mysql组添加mysql用户
useradd -r -g mysql -s /bin/false mysql
注意:Because the user is required only for ownership purposes, not login purposes, the useradd command uses the -r and -s /bin/false options to create a user that does not have login permissions to your server host. Omit these options if your useradd does not support them. (mysql只作为系统账号,不可用于登陆)
5、 mysql目录权限拥有者修改
chown -R mysql:mysql ./
6、 安装准备
查看之前是否有安装
rpm -qa|grep -i mysql
删除安装信息
rpm -e mysql-libs –nodeps
安装前先安装:
# yum install numactl
# yum -y install libnuma
7、 安装MySQL
按照如下顺序进行安装
rpm -ivh MySQL-client-5.6.36-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.36-1.el6.x86_64.rpm
rpm -ivh MySQL-server-5.6.36-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-5.6.36-1.el6.x86_64.rpm
注意:安装第三个server时,没有提示安装成功,因为文件冲突了,
冲突信息:
[root@azrlnx06 tmp]# rpm -ivh MySQL-server-advanced-5.6.20-1.rhel5.x86_64.rpm
Preparing... ################################# [100%]
file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/danish/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/dutch/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/english/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/estonian/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/french/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/german/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/greek/errmsg.sys from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
........................................................................................................................................................................
file /usr/share/mysql/charsets/macroman.xml from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
file /usr/share/mysql/charsets/swe7.xml from install of MySQL-server-advanced-5.6.20-1.rhel5.x86_64 conflicts with file from package mariadb-libs-1:5.5.50-1.el7_2.x86_64
解决办法如下:
检查是否存在mariadb的相关组件,然后删除mariadb相关组件。如下所示
[root@azrlnx06 mysql]# more /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@azrlnx06 mysql]# rpm -qa |grep mariadb
mariadb-libs-5.5.50-1.el7_2.x86_64
[root@azrlnx06 mysql]# rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64
error: Failed dependencies:
libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
[root@azrlnx06 mysql]# rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64 --nodeps
8、 安装完成,启动服务
service mysql start
9、 配置MySQL登录密码,并授权主机登陆。
(1) 获取MySQL安装时生成的随机密码
cat /root/.mysql_secret
(2) 通过获取的密码,执行登陆
mysql -uroot –p123456
注意:如果出现错误
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'
解决办法如下:
这种问题需要强行重新修改密码,方法如下:
/etc/init.d/mysql stop (service mysqld stop )
/usr/bin/mysqld_safe --skip-grant-tables
另外开个SSH连接
[root@localhost ~]# mysql
mysql>use mysql
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit
10. 重置root密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('p@ssw0rd');
(4) 授权主机登陆
授权任意主机可登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'p@ssw0rd' WITH GRANT OPTION;
授权指定主机可登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'xxx.xxx.xxx.xx' IDENTIFIED BY 'p@ssw0rd' WITH GRANT OPTION;
立即执行新权限
FLUSH PRIVILEGES;
(5) 退出MySQL命令行
quit
10、重启服务
service mysql restart
11、开发3306端口
查看防火墙状态
/etc/init.d/iptables status
查看是否已开发3306端口,没有则开放3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
注意:用navcat连接时提示
mysql"Access denied for user'root'@'IP地址'"
用root账号登录mysql以后,接下来看看A账号的相关信息:
mysql> use mysql;
Database changed
mysql> select User, Host from user where User='hive';
+------+--------------+
| User | Host |
+------+--------------+
| hive | 127.0.0.1 |
+------+--------------+
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
这一下就明白了。尼玛难怪navicat客户端登不了。hive账户的host只有127.0.0.1,自然只能在本机登录了。
mysql> update user set Host='%' where User='hive';
- 1
将hive账户设置为所有机器均可登录,然后再刷新一下权限:
mysql> flush privileges;
当用户从客户端请求登陆时,MySQL将授权表中的条目与客户端所提供的条目进行比较,包括用户的用户名,密码和主机。授权表中的Host字段是可以使用通配符作为模式进行匹配的,如test.example.com, %.example.com, %.com和%都可以匹配test.example.com这个主机。授权表中的User字段不允许使用模式匹配,但是可以有一个空字符的用户名代表匿名用户,并且空字符串可以匹配所有的用户名,就像通配符一样。 当user表中的Host和User有多个值可以匹配客户端提供的主机和用户名时,MySQL将user表读入内存,并且按照一定规则排序,按照排序规则读取到的第一个匹配客户端用户名和主机名的条目对客户端进行身份验证。
mysql匹配规则由精确到模糊。删除其他不是%号的用户,就行了
远程登录成功!!!