1.首先需要下载mysql rpm 包,下载地址
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery
输入mysql database server后搜索,将你需要的mysql加入购物车,然后打包下载
下载好的包如下
2.将下载好的mysql rpm包上传至linux服务器
3.依次执行以下命令 -ivh:安装显示安装进度--install--verbose--hash
- 安装公共包 rpm -ivh mysql-commercial-common-8.0.12-1.1.el6.x86_64.rpm
- 安装依赖包 rpm -ivh mysql-commercial-libs-8.0.12-1.1.el6.x86_64.rpm
- 安装补充依赖 rpm -ivh mysql-commercial-libs-compat-8.0.12-1.1.el6.x86_64.rpm
- 安装客户端 rpm -ivh mysql-commercial-client-8.0.12-1.1.el6.x86_64.rpm
- 安装备份包 rpm -ivh mysql-commercial-backup-8.0.12-1.1.el6.x86_64.rpm
- 安装服务端 rpm -ivh mysql-commercial-server-8.0.12-1.1.el6.x86_64.rpm
- rpm -ivh mysql-commercial-devel-8.0.12-1.1.el6.x86_64.rpm
- 安装测试包(可不安装)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 |
|
二、使用ALTER修改root用户密码,方法为 ALTER user 'root'@'localhost' IDENTIFIED BY '新密码'。如下:
1 |
|
此处有两点需要注意:
1、不需要flush privileges来刷新权限。
2、密码要包含大写字母,小写字母,数字,特殊符号。
修改成功; 重新使用用户名密码登录即可;
注意: 一定不要采取如下形式该密码:
1 2 |
|
这样会给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 |
|
然后查看 select host, user, authentication_string, plugin from user;
发现root用户只允许localhost访问
然后就用sql改掉咯,
update user set host='%' where user='root';
FLUSH
PRIVILEGES
;
OK.现在再去重连。连接报错1006
额,然后我查看了防火墙,果然是它,果断关掉,然后重连,成功连接!!
折腾了这么久,总算可以开始我的SQL之路了,撒花!撒花!撒花!