CentOS7安装mysql5.7.22

1、安装包下载:

mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

可通过一下链接下载:
https://pan.baidu.com/s/1uSMMnotEzGJ5U_Q8aqlJIA 密码: 5udq

步骤2-7为root用户操作

2、解压安装包

tar -zxvf /root/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

可以将解压后文件放在/usr/local下,并重命名为mysql

mv mysql-5.7.22-linux-glibc2.12-x86_64/ /usr/local/mysql

3、创建用户

groupadd mysql
useradd -g mysql mysql
passwd mysql

4、安装数据库

进入mysql目录

cd /usr/local/mysql

执行命令:

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

PS.如果报错:

bin/mysqld: error while loading shared libraries: libaio.so.1: cannot
open shared object file: No such file or directory

安装libaio.so.1即可,可执行:

yum install -y libaio

再次执行以上安装命令,显示如下,注意记住红色框线生成的随机密码
这里写图片描述
执行以下命令,创建RSA private key

bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

5、更改目录权限

chown -R mysql:mysql /usr/local/mysql

6、配置my.cnf

/etc/my.cnf下文件更新为以下内容:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

7、启动mysql

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
vi /etc/init.d/mysqld

在该文件中修改如下:
这里写图片描述
即:

 basedir=/usr/local/mysql
 datadir=/usr/local/mysql/data

执行命令:

service mysqld start 

显示:

Starting MySQL.                                            [  OK  ]

加入开机启动,执行:

chkconfig --add mysqld

创建mysql快捷方式:

ln -s /usr/local/mysql/bin/mysql /usr/bin

8、登录mysql

登录mysql用户
执行命令:

mysql -u root -p

输入步骤4记录的随机密码登入mysql,首先需要修改密码:

alter user 'root'@'localhost' identified by '密码';   
flush privileges;    #刷新权限

此时测试一下 查询:

use mysql
select Host,User,authentication_string from user;

如图:
这里写图片描述

9、远程登录mysql

此时通过navicate等远程连接工具,会发现此时是连接不上的,原因如下:
基本每个mysql都会有名为mysql的数据库,里面存放的是mysql的核心东西,其中user表里面就有mysql连接的用户信息,里面的字段有如下:

	 1. Host(允许连接的主机,%代表全部主机可以连接)
	 2. User(连接的用户名)
	 3. Select_priv(是否允许查询,Y表示允许,N表示拒绝)
	 4. Alter_priv(是否允许插入数据,Y表示允许,N表示拒绝)
	 5. authentication_string(连接的密码,密码用mysql自带的password函数加密)
	 ...

其余的都是一些权限,和Select_priv的设置一样,步骤8中截图第一条记录,就代表着处在localhost地址的用户User可以通过密码password访问数据库对应的权限。故只要符合用户名(user),密码(password),主机地址(Host),你就能访问数据库,至于权限,需要看后面对应的字段。
所以,执行以下命令:

update user set Host = '%' where Host = 'localhost' and User = 'root';
flush privileges;

此时远程连接则一切正常


2018-09-25 added

10、创建用户并赋予权限

root用户登录:

create user 'test'@'%' identified by '123456';
flush privileges;

创建数据库

create database testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci; 

授予用户权限

grant all privileges on testdb.* to 'test'@'%' identified by '123456';
flush privileges;

退出使用新创建用户登录即可

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值