linux系统下(镜像为centos7.6)使用rpm方式安装MySql8

一、环境检查

1、检查是否安装过mariadb

命令:rpm -qa | grep mariadb

 2、删除

命令:rpm -e --nodeps mariadb-libs(--nodeps排除依赖强制删除,不加会报如下错误)

3、检查一下是否安装了mysql的依赖环境

命令:rpm -qa | grep libaio   ; rpm -qa | grep net-tools

 4、查看/tmp文件夹权限,tmp目录指的是临时目录

命令:ll /

 

 二、安装

1、下载rpm文件

下载地址:https://dev.mysql.com/downloads/mysql/,直接下载即可

 

 2、将下载好的文件解压之后上传到linux系统的/opt目录下

 

 

 3、按顺序安装以下的安装包

第一个命令:rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm

 

 第二个命令:rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm

 

 第三个命令:rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm

 

 第四个命令:rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm

 

 第五个命令: rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm

 

 4、查看安装版本

命令:mysqladmin --version

 

 三、mysql的使用

1、初始化mysql

命令:mysqld --initialize --user=mysql

该命令执行完之后我们发现没有任何输出,那mysql是否初始化成功呢?我们需要查看mysql的日志

命令:cat /var/log/mysqld.log

我们在日志中可以查看到mysql的初始化密码,如下

 

 2、启动mysql

命令:systemctl start mysqld

查看mysql的状态判断是否启动成功

命令:systemctl status mysqld

 

 3、使用初始化密码登录mysql

命令:mysql -uroot -p 键入回车 粘贴日志中的初始化密码 键入回车

 

需要注意的是:mysql8使用初始化密码登录数据库是不具备任何权限的,我们需要重新设置密码才可以使用数据库

 4、修改密码

命令: alter user 'root'@'localhost' identified by '自定义密码';

 

quit退出然后重新登陆

5、修改字符集

命令:vim  /etc/my.cnf

在最后一行添加 character_set_server=utf8

重启mysql服务

命令:systemctl restart mysqld

(需要注意的是:如果在配置文件修改之前创建了库或者表,我们需要手动的更改之前的库或者表所使用的的字符集;修改配置文件之后创建的库或者表则不需要)

以此延伸出来的面试问题:

mysql插入数据时出现中文乱码如何解决?

答:修改mysql的配置文件,在mysqld下面添加character_set_server=utf8,重启mysql服务,之后创建的表在插入中文时就不会出现中文乱码了。

对于已经存在的库或者表我们需要手动的修改字符集。

修改数据库字符集命令:alert database 库名 character set ‘utf8’,

修改表字符集命令:alert table 表名 convert to character set ‘utf8’

6、远程访问数据库

在以上的步骤中如果我们想用数据库管理工具,如Navicat连接数据库是不行的。

使用命令:select host,user, authentication_string from user;查询用户可以看到(需要先切换到mysql数据库)

 

 当前的四个用户的连接地址都是本地。

此时我们可以使用命令:create user 用户名 identified by 密码来创建一个新用户

 

 此时在此查看用户可以看到新创建的用户host为%(所有的远程主机)

 

 使用Navicat进行连接测试发现可以连接成功,但是所展示出来的表却只有一个,这说明我们新创建的用户没有权限。

可以使用命令:grant all privileges on *.* to 'cangfeng'@'%';来为我们创建的用户授权 

grant代表授权操作符

all privileges:所有权限

on  *.*:代表所有库所有表

to ‘username’@‘%’:指向 host为% 名称为username的用户

此时在刷新连接发现我们可以看到所有的表了

 

posted @ 2021-10-03 20:41  云入山涧  阅读(496)  评论(0编辑  收藏  举报