redhat6.7下使用rpm方式 安装 mysql8.0.12,修改密码,允许远程访问踩坑记

1.首先需要下载mysql rpm 包,下载地址 

https://edelivery.oracle.com/osdc/faces/SoftwareDelivery

输入mysql database server后搜索,将你需要的mysql加入购物车,然后打包下载

下载好的包如下

2.将下载好的mysql rpm包上传至linux服务器

3.依次执行以下命令  -ivh:安装显示安装进度--install--verbose--hash

  1.  安装公共包      rpm -ivh mysql-commercial-common-8.0.12-1.1.el6.x86_64.rpm 
  2.  安装依赖包     rpm -ivh mysql-commercial-libs-8.0.12-1.1.el6.x86_64.rpm 
  3.  安装补充依赖   rpm -ivh mysql-commercial-libs-compat-8.0.12-1.1.el6.x86_64.rpm 
  4.  安装客户端    rpm -ivh mysql-commercial-client-8.0.12-1.1.el6.x86_64.rpm 
  5. 安装备份包    rpm -ivh mysql-commercial-backup-8.0.12-1.1.el6.x86_64.rpm 
  6. 安装服务端   rpm -ivh mysql-commercial-server-8.0.12-1.1.el6.x86_64.rpm 
  7. rpm -ivh mysql-commercial-devel-8.0.12-1.1.el6.x86_64.rpm
  8. 安装测试包(可不安装)rpm -ivh mysql-commercial-test-8.0.12-1.1.el6.x86_64.rpm

因为我已经安装过其它的MySQL,因此我安装的时候出现了以下问题

warning: mysql-commercial-server-8.0.12-1.1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                ########################################### [100%]
    file /etc/my.cnf from install of mysql-commercial-server-8.0.12-1.1.el6.x86_64 conflicts with file from package mysql-libs-5.1.73-3.el6_5.x86_64

这时候需要在安装的时候使用 rpm -ivh mysql-commercial-test-8.0.12-1.1.el6.x86_64.rpm --force --nodeps

在.rpm后边添加 --force --nodeps

rpm参数解释

-i, --install                     install package(s)
-v, --verbose                     provide more detailed output
-h, --hash                        print hash marks as package installs (good with -v)
-e, --erase                       erase (uninstall) package
-U, --upgrade=<packagefile>+      upgrade package(s)
--replacepkge                    无论软件包是否已被安装,都强行安装软件包
--test                            安装测试,并不实际安装
--nodeps                          忽略软件包的依赖关系强行安装
--force                           忽略软件包及文件的冲突

Query options (with -q or --query):
-a, --all                         query/verify all packages
-p, --package                     query/verify a package file
-l, --list                        list files in package
-d, --docfiles                    list all documentation files
-f, --file                        query/verify package(s) owning file

引至 http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/08/2203153.html

4.现在就安装完成了,需要启动服务 service mysqld start  发现出现启动成功

然后使用root用户

vim /etc/my.cnf

在末尾添加  skip-grant-tables 后保存并退出 重启MySQL,命令为:service mysqld restart 

5.现在MySQL就安装成功了,我们来修改root用户的密码

使用命令   mysql -u root -p 进入MySQL,然后

1.查询用户密码:

查询用户密码命令:mysql>select host,user,authentication_string from mysql.user;

host: 允许用户登录的ip‘位置'%表示可以远程;

user:当前数据库的用户名;

authentication_string: 用户密码(后面有提到此字段);

2. 设置(或修改)root用户密码:

默认root密码为空的话 ,下面使用navicat就无法连接,所以我们需要修改root的密码。

这是很关键的一步。此处踩过N多坑,后来查阅很多才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

下面直接演示正确修改root密码的步骤:

  一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。

1

2

use mysql;

update user set authentication_string='' where user='root'

  二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:

1

ALTER user 'root'@'localhost' IDENTIFIED BY 'Admin@123'

  此处有两点需要注意:

1、不需要flush privileges来刷新权限。

2、密码要包含大写字母,小写字母,数字,特殊符号。

  修改成功; 重新使用用户名密码登录即可;

注意: 一定不要采取如下形式该密码:

1

2

use mysql;

update user set authentication_string="newpassword" where user="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

至此,安装mysql和修改root密码告一段落。

6.然后SQLYoung解决远程访问的问题

账号密码都正确,连接报错1251。OK 我们先来看看这个改动:

在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

so,我们这里需要再次修改一次root密码。

先登录进入mysql环境:执行下面三个命令。(记得带上分号)

1

2

3

use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

FLUSH PRIVILEGES;

然后查看   select host, user, authentication_string, plugin from user;

发现root用户只允许localhost访问

然后就用sql改掉咯,

update user set host='%' where user='root';

FLUSH PRIVILEGES;

OK.现在再去重连。连接报错1006

额,然后我查看了防火墙,果然是它,果断关掉,然后重连,成功连接!!

折腾了这么久,总算可以开始我的SQL之路了,撒花!撒花!撒花!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值