mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
可通过一下链接下载:
https://pan.baidu.com/s/1uSMMnotEzGJ5U_Q8aqlJIA 密码: 5udq
步骤2-7为root用户操作
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
groupadd mysql
useradd -g mysql mysql
passwd mysql
进入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
chown -R mysql:mysql /usr/local/mysql
/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
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
登录mysql用户
执行命令:
mysql -u root -p
输入步骤4记录的随机密码登入mysql,首先需要修改密码:
alter user 'root'@'localhost' identified by '密码';
flush privileges; #刷新权限
此时测试一下 查询:
use mysql
select Host,User,authentication_string from user;
此时通过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
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;
退出使用新创建用户登录即可