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的用户
此时在刷新连接发现我们可以看到所有的表了