安装mysql查看随机密码命令_linux安装mysql-8.0.21-1.el7.x86_64.rpm-bundle - 君主-bye

本文参考

一     查看linux操作系统版本和系统内核版本

1 [root@nfs_client ~]# cat /etc/redhat-release     查看操作系统版本
2 CentOS Linux release 7.5.1804 (Core) 
3 [root@nfs_client ~]# uname -r               查看系统内核版本
43.10.0-862.el7.x86_64
5

二   下载对应版本的MySQL安装文件

    2、选择对应的Linux版本和x86/x64进行下载

   可以选择 RPM Bundle,下载完记得解压  tar -xvf xxx.tar

三 卸载旧版本的MySql (没有的话,则跳过此步骤)

      1、查看旧版本MySql

rpm -qa | grep mysql
rpm -e --nodeps {-file-name}

有的系统可能不太一样,没有mysql-libs,而是mariadb-libs,此时要移除的则是mariadb-libs

 rpm -qa|grep mariadb

 yum remove mariadb-libs

四 安装MySql 

 解压之后的文件

6f5ede441dd7cab9d264a5655920b4d1.png

使用命令rpm -ivh {-file-name}进行安装操作。

按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server

注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验

在安装 时有可能会报错:mysql依赖错误

22cd9090781ea0d70e3db7bbe2a53d30.png

5cd417703ab81cb9636bb1dc7ef235b4.png

解决:清除yum里所有mysql依赖包

[root@nfs_client tools]# rpm -qa|grep mysql
[root@nfs_client tools]# yum remove mysql-libs
 
注意:
有的系统可能不太一样,没有mysql-libs,而是mariadb-libs,此时要移除的则是mariadb-libs
[root@nfs_client tools]# rpm -qa|grep mariadb
[root@nfs_client tools]# yum remove mariadb-libs

注意细节:

1> 执行 yum remove mysql-libs   命令后,会自动删除掉 /etc/ 下的 文件
2> 对于安装mysql组件,只有安装了  组件,才会:
a). 在 /etc/下生成 文件 和 .d 文件夹

f2abade75d252ba67ec301eb9a077f47.png
b). 在/var/lib/下生产以下三个文件夹d06ccd767d2099e64aef10690134ce2a.png
c). 在/var/log/ 下生成 文件0f83fb310e570b0a8c2825fa4d77ad01.png
d). 在/var/run/ 下生成 mysqld 目录34f767c3c66a8bce9e1861876a8352c8.png

个别情况:

个别情况1:

在阿里云ECS云服务器上安装,当安装 时报错,报错如下:

[root@i3467544tdsxfrZ ~]# rpm -ivh
warning: : Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
()(64bit) is needed by
()(64bit) is needed by
()(64bit) is needed by

真正原因:

真正的原因是 MySQL依赖libaio,所以先要安装libaio,我们通过 rpm -qa|grep libaio 命令查看一下,如图:

0b0e174a5a5caa479d29fa97cfdcaa08.png

8f6646bd27f88dd39ebdd670bb1a62e4.png

经过对比发现,无法正常安装的服务器的确没有安装libaio

所以,解决法案就是:

安装libaio

[root@iZbp1845cet96se1qmb5ekZ ~]

安装libaio后,再重新安装一次,此时就能正常安装了

8e1c504451e918da65962c70bfb10093.png

个别情况2:

比如解决了“个别情况1”,但在启动mysql的时候,启动不起来,或启动后,去查找临时密码,使用命令没反应。查看日志(可在/etc/中查找到的配置位置),报如下错误,此时怎么解决?

[ERROR] Fatal error: Can't open and lock privilege tables: Table '' doesn't exist

此时,1>先通过rpm -e --nodeps xxx  卸载掉server,卸载后删除datadir目录,2>卸载后查看 /etc/ 中,datadir的配置情况,将datedir目录删除,3>最后通过命令rpm -ivh xxx 重新安装server,此时就能正常使用mysql了

命令代码如下:

[root@izbp1845cet96se1qmb5ekz ~]# rpm -e --nodeps

[root@izbp1845cet96se1qmb5ekz ~]# cat /etc/
xxxxxxxxxxxxx
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

xxxxxxxxxxxxxxx

[root@izbp1845cet96se1qmb5ekz ~]# cd /var/lib

[root@izbp1845cet96se1qmb5ekz lib]# rm -rf mysql

[root@izbp1845cet96se1qmb5ekz ~]# rpm -ivh

[root@izbp1845cet96se1qmb5ekz ~]# systemctl start mysqld.service
[root@izbp1845cet96se1qmb5ekz ~]# ps -ef|grep mysql
root      3306  1068  0 14:34 pts/0    00:00:00 mysql -uroot -p
mysql    27009     1  1 15:26 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
root     27038 26239  0 15:27 pts/6    00:00:00 grep --color=auto mysql

五 登录并创建MySql密码

    1 启动MySql

        安装完后,使用命令 service mysqld start 或 systemctl start mysqld.service 启动MySQL服务。(如果mysql服务无法启动,就重启一下系统)

systemctl start mysqld.service    启动mysql
systemctl status mysqld.service  查看mysql状态
systemctl stop mysqld.service   关闭mysql

查看mysql进程 ps -ef|grep mysql
查看3306端口 netstat -anop|grep 3306

4343045b687dcc58dbb152c7da829e1a.png

 2 登陆mysql修改root密码

        由于之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个临时密码。

      怎么找到这个临时密码呢?

      使用:

grep 'temporary password' /var/log/

即可查询到类似于如下的一条日志记录:

b999fa84e189a655c5a922fc0df48b97.png

 #o(YH0ff;i30即为登录密码。使用这个随机密码登录进去,然后修改密码,使用命令:

输入密码

7689e9ef62df73208c2abd30594c3454.png

执行下面的命令修改MySql root密码

在后,mysql内置密码增强机制,低强度密码会报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

可能出现密码不符合策略或过于简单等提示,建议先使用如下密码,稍后更改策略再换

 step1:更改策略和修改密码长度

setglobal validate_password.policy=0;
setglobal validate_password.length=1;

不管设置  validate_password_length=1,还是2,3,4 ,‘有效密码长度’这个参数的实际值都是4。超过4后设置是多少实际就是多少。

step2:从新设置密码

alter user root@localhost identified by '123456';

 step3: 授予root用户远程访问权限:

此时,虽然防火墙我时关着的,但root用户只能用于本机访问,不能用于远程访问,否则会报以下错误。因此,接下来要做的是授予root用户远程访问权限。

查看当前授予过的权限:

use mysql;
select user,host from user;

2455fb6e72e2697d23896ee92207b90a.png

不推荐直接使用root用户通过外部访问数据库,建议创建用户给予对应所需权限即可

step4.添加一个新用户

create user '新用户名'@'localhost' identified by '密码';
//允许所有ip连接(用通配符%表示)
create user '新用户名'@'%' identified by '密码';授权用户

step5.授权用户

格式:GRANT privileges ON  databasename.tablename  TO  ‘username’@‘host’
例:给admin用户授权study数据库中所有表的所有操作权限
GRANT ALL ON *.* TO 'admin'@'%';

privileges:表示要授予什么权力,例如可以有 select ,insert 等,如果要授予全部权力,则填 ALL
databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有
的数据库所有的表,则填 .,*是一个通配符,表示全部。
’username‘@‘host’:表示授权给哪个用户。

step6:开放3306端口

此时外面远程访问还是访问不到,因为我的防火墙没有放开3306端口,

firewall-cmd --zone=public --add-port=3306/tcp --permanent 
firewall-cmd --reload

 我用的DataGrip连接会报错

ec0200e71de75f1b70fa47392127cb09.png

 我看网上很多人都在说加上serverTimezone=UTC,我的加上不行,最后我发现我要加上useSSL=false&allowPublicKeyRetrieval=true就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值