阿里云主机Centos7下安装mysql8

参考:https://www.cnblogs.com/coding-one/p/11698271.html
1.安装之前的准备

1.检查是否安装了mysql:rpm -qa |grep mysql-server2.卸载mariadb:由于MySQL在CentOS7中收费了,所以已经不支持MySQL了,取而代之在CentOS7内部集成了mariadb,而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB. 使用rpm 命令查找出要删除的mariadb文件; rpm -pa | grep mariadb 可能的显示结果如下: mariadb-libs-5.5.56-2.el7.x86_64 删除上面的程序 rpm -e mariadb-libs-5.5.56-2.el7.x86_64

2.官网下载mysql的yum源 centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;
2.1. 访问官网,查看最新安装包 https://dev.mysql.com/downloads/repo/yum/
2.2. 选择版本,点击“download” 阿里云主机Centos7下安装mysql8
文章图片
image.png 2.3. 登录 如果是未登录状态,会要求登录。此时会跳转到 oracle 单点登录页面,登录自己的 oracle 账号即可(没有账号就注册一个,现在下载 oracle 的产品都需要登录,比如 jdk)
2.4. 登录后回到上述页面,右键选择的版本对应的download按钮,点击“复制链接地址菜单项” 2.5. 登录Linux服务器,进入到某个目录(如 /usr/local/src),使用 wget 下载源安装包.
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

3.安装mysql的yum源 3.1安装 yum repo 文件 rpm -ivh mysql80-community-release-el7-3.noarch.rpm
执行结果会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

阿里云主机Centos7下安装mysql8
文章图片
image.png 3.2. 更新yum缓存 yum clean all

阿里云主机Centos7下安装mysql8
文章图片
image.png
yum makecache

阿里云主机Centos7下安装mysql8
文章图片
image.png 4.安装mysql服务器 4.1. 选择版本 当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
4.1.1. 查看mysql yum仓库中mysql版本,使用如下命令 yum repolist all | grep mysql

阿里云主机Centos7下安装mysql8
文章图片
image.png
可以看到mysql8是可用的,其它是禁用的,我正好是需要安装mysql8,所以不用管了。如果想要安装其它版本可以修改。
4.1.2. 修改禁用启用规则 yum-config-manager --enable mysql57-community
如果命令无效,可以直接编辑 mysql repo。

阿里云主机Centos7下安装mysql8
文章图片
image.png 4.2. 安装mysql服务 yum install mysql-community-server
【阿里云主机Centos7下安装mysql8】中间有需要确认的步骤就一直 “y” 就行了。

阿里云主机Centos7下安装mysql8
文章图片
image.png
阿里云主机Centos7下安装mysql8
文章图片
image.png 5.启动授权 5.1.初始化数据库 mysqld --initialize --console
5.2.目录授权,否则启动失败 chown -R mysql:mysql /var/lib/mysql/
5.3 启动服务,测试连接 启动:systemctl start mysqld.service
停止:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看服务状态:systemctl status mysqld.service
6.基本连接配置 1.在/var/log/mysqld.log下查看临时密码 阿里云主机Centos7下安装mysql8
文章图片
image.png 2.临时密码登陆数据库修改密码
mysql -u root -p + 回车键 输入临时密码(输入时不会显示出来,输入完直接回车) alter USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含两者:数字大小写字母特殊字符)';

阿里云主机Centos7下安装mysql8
文章图片
image.png 3.授权远程登陆
查看所有用户是否可以远程连接,依次执行下列命令: show databases; use mysql; select host, user, authentication_string, plugin from user;

阿里云主机Centos7下安装mysql8
文章图片
image.png 可以看到root用户的host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。注意在初始的时候只有在mysql数据库里才有这张表,其他数据库里面没有这张表,所以要切换到mysql数据库:
4.修改root用户host值,使root用户可以远程登录
update user set host = "%" where user='root'; flush privileges;

阿里云主机Centos7下安装mysql8
文章图片
image.png 5.创建用户
1.创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username: 你将创建的用户名 host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'quanran'@'192.168.1.101_' IDENDIFIED BY '123456'; CREATE USER 'quanran'@'%' IDENTIFIED BY '123456'; CREATE USER 'quanran'@'%' IDENTIFIED BY ''; CREATE USER 'quanran'@'%'; 2.创建数据库 create database `mmall` default character set utf8 collate utf8_general_ci; 3.授权 命令: GRANT privileges ON databasename.tablename TO 'username'@'host' 说明: privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL databasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.* 例子: GRANT SELECT, INSERT ON test.user TO 'quanran'@'%'; GRANT ALL ON *.* TO 'quanran'@'%'; GRANT ALL ON maindataplus.* TO 'quanran'@'%'; Grant all privileges ON mmall.* to 'mmall'@'%'; 注意: 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; #查看用户权限 show grants for 'nextcloud'@'%'; or select * from mysql.user where user='root' \G;

阿里云主机Centos7下安装mysql8
文章图片
创建用户并授权
阿里云主机Centos7下安装mysql8
文章图片

解决mysql8报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT: https://www.runoob.com/w3cnote/mysql8-error-1410-42000-you-are-not-allowed-to-create-a-user-with-grant.html
4.设置与更改用户密码 命令: SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); 如果是当前登陆用户用: SET PASSWORD = PASSWORD("newpassword"); 例子: SET PASSWORD FOR 'quanran'@'%' = PASSWORD("123456"); 5.撤销用户权限 命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host'; 说明: privilege, databasename, tablename:同授权部分 例子: REVOKE SELECT ON *.* FROM 'quanran'@'%'; 注意: 1.如果用 GRANT SELECT ON test.user TO 'quanran'@'%' 给用户’quanran’@’%‘授权,则使用 REVOKE SELECT ON . FROM 'quanran'@'%'; 并不能撤销该用户对test数据库中user表的SELECT 操作。 2.如果用 GRANT SELECT ON . TO 'quanran'@'%'; 给’quanran’@’%'授权,则使用 REVOKE SELECT ON test.user FROM 'quanran'@'%'; 命令也不能撤销该用户对test数据库中user表的Select权限。 3.具体信息可以用命令SHOW GRANTS FOR 'quanran'@'%'; 查看。6.删除用户 命令: DROP USER 'username'@'host';

阿里云主机Centos7下安装mysql8
文章图片
image.png 6.navicat连接mysql 由于mysql8的加密方式和Navicat不一样,所以此时要想通过navicat访问数据库,需要添加下面的句子:
alter user mmall identified with mysql_native_password by 'mmall';

7.mysql配置文件修改
vim /etc/my.cnf 添加: character-set-server=utf8 default-character-set=utf8

阿里云主机Centos7下安装mysql8
文章图片
image.png 1.设置开机自启动 --设置mysql开机自启动
systemctl enable mysqld
--查看系统当前默认启动项目的方法
systemctl list-unit-files
2.执行sql语句 如果我们创建的用户数据库至允许在本地登陆,但是本地不能安装图形户界面如,navicat,此时我们就需要在命令行当中执行sql语句
1.登陆数据库 2.执行说起来语句 mysql> source /developer/mmall.sql --/developer/mmall.sql是sql语句所在的位置

阿里云主机Centos7下安装mysql8
文章图片
登陆云主机
阿里云主机Centos7下安装mysql8
文章图片
image.png
阿里云主机Centos7下安装mysql8
文章图片
可以看到数据插入成功

    推荐阅读