MySql安装(linux版本)
本文使用的centos7操作系统
一、mysql安装包处理
1.1、下载mysql安装包
在mysql官网下载安装包,https://dev.mysql.com/downloads/mysql/
我选择的全量rmp安装包
1.2、将下载的压缩包上传至服务器/usr/local/mysql目录,解压缩安装包
前提需要使用root用户新建mysql用户
tar包解压命令 tar axvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
二、安装MySql
2.1、首先清除CentOS7系统中默认的数据库mariadb,否则不能安装mysql
rpm -qa |grep mariadb |xargs yum remove -y
2.2、切换到root用户(通过试验建议切换到root下)开始安装
切记需要严格按照以下顺序安装
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
2.3、修改MySql配置
vi /etc/my.cnf
查看该文件,这四个路径一定需要按照你服务器上的目录填写,不然会报错文件夹找不到或者无法创建
2.4、通过以下命令,完成对 mysql 数据库的初始化和相关配置
mysqld --initialize
chown mysql:mysql /home/mysql/var/data -R (这边一定注意和my.cnf文件中datadir的目录一致)
systemctl start mysqld.service
systemctl enable mysqld
三、启动MySql服务
3.1、启动mysql
systemctl start mysqld.service
#停止MySql systemctl stop mysqld.service
#重启MySql systemctl restart mysqld.service
3.2、设置MySql开机自启
systemctl enable mysqld
3.3、通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码
2019-10-25T11:46:38.945518Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: ,#t#efbOG0j0
以上密码为,#t#efbOG0j0
四、测试MySql安装是否成功
4.1、以root用户登录MySql,执行命令
mysql -u root -p
输入以上命令回车进入,出现输入密码提示,输入刚刚查到的密码,进行数据库的登陆,复制粘贴就行,MySQL 的登陆密码也是不显示的
4.2 修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘XXXXX’;
4.3 通过 exit; 命令退出 MySQL,然后通过新密码再次登陆
至此,mysql数据库就安装完成了。
五、MySql远程访问授权配置
5.1、以root用户登录MySql
mysql -u root -p
5.2 使root用户可以操作数据库中的所有表
create user 'root'@'%' identified with mysql_native_password by 'XXXXXXX';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
5.3 添加新用户
create user 'ddf'@'%' identified by '123456';
flush privileges;
5.4 创建数据库
create database ddfdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
5.5 为新用户分配权限
grant all privileges on `ddfdb`.* to 'ddf'@'%' identified by '123456';
a)此时会报错:
这是因为新版的的mysql版本已经将创建账户和赋予权限的方式分开了所以需要将命令改成
grant 权限列表 on 数据库 to ‘用户名’@’访问主机’ ;
Grant all privileges on ddfdb.* to 'ddf'@'%';
b)恭喜你,此时不出意外的话还会报错 ,大致的意思就是你不被允许执行该命令
此时需要到mysql数据库下载user表中添加你新建立的用户,执行如下命令就可以啦
user mysql
update user set host='%' where user='ddf';
切换到root用户下继续执行 Grant all privileges on ddfdb.* to 'ddf'@'%'; 就ok啦
5.6 测试新建用户连接
此时用navicat连接还是报错:Client does not support authentication protocol requested by server;
原因是mysql8默认的加密方式为caching_sha2_password 与mysql5的加密方式mysql_native_password 不同
好吧,最后加工处理一下,即更改加密方式:
alter user ddf identified with mysql_native_password by 'XXXXXXXX';
到此mysql8安装、新建用户、新建数据库、赋权限操作完毕,开始使用新数据库愉快玩耍吧~