阿里云主机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”
文章图片
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
文章图片
image.png 3.2. 更新yum缓存 yum clean all
文章图片
image.png
yum makecache
文章图片
image.png 4.安装mysql服务器 4.1. 选择版本 当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;
4.1.1. 查看mysql yum仓库中mysql版本,使用如下命令 yum repolist all | grep mysql
文章图片
image.png
可以看到mysql8是可用的,其它是禁用的,我正好是需要安装mysql8,所以不用管了。如果想要安装其它版本可以修改。
4.1.2. 修改禁用启用规则 yum-config-manager --enable mysql57-community
如果命令无效,可以直接编辑 mysql repo。
文章图片
image.png 4.2. 安装mysql服务 yum install mysql-community-server
【阿里云主机Centos7下安装mysql8】中间有需要确认的步骤就一直 “y” 就行了。
文章图片
image.png
文章图片
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下查看临时密码
文章图片
image.png 2.临时密码登陆数据库修改密码
mysql -u root -p + 回车键
输入临时密码(输入时不会显示出来,输入完直接回车)
alter USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含两者:数字大小写字母特殊字符)';
文章图片
image.png 3.授权远程登陆
查看所有用户是否可以远程连接,依次执行下列命令:
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
文章图片
image.png 可以看到root用户的host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。注意在初始的时候只有在mysql数据库里才有这张表,其他数据库里面没有这张表,所以要切换到mysql数据库:
4.修改root用户host值,使root用户可以远程登录
update user set host = "%" where user='root';
flush privileges;
文章图片
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;
文章图片
创建用户并授权
文章图片
解决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';
文章图片
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
文章图片
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语句所在的位置
文章图片
登陆云主机
文章图片
image.png
文章图片
可以看到数据插入成功
推荐阅读
- 赠己诗
- 八、「料理风云」
- 西湖游
- 两短篇
- 9531
- NeuVector 会是下一个爆款云原生安全神器吗()
- S8大连侠盗勇士
- 走向天空,走向云(小说)3
- 2018年7月11日|2018年7月11日 星期三 多云转晴(18)
- (全员向连载)云间当铺(一)