一、工具准备
1.下载mysql8.0.13版本(这是我安装时使用的版本),下载地址:MySQL :: Download MySQL Community Server
1.1
1.2
选择和系统位数一致的版本下载
- CentOS 7 系统
3.VM Ware14
- 将下载的mysql8安装包上传到/home/apps(因个人习惯,所以建了一个apps专门存放软件,找起来方便),解压
tar -Jxvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
二、安装
1.由于解压后的文件夹名字太长,所以修改名字,方便后面操作
mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql8
2.创建用户组(必须)
groupadd mysql useradd -g mysql mysql
貌似这里必须创建名称为mysql 的用户组,当初因为这一步搞了一下午,mysql出于安全考虑这样设计。
3.设置目录权限
chown -R mysql.mysql /home/apps/mysql8
4.修改/etc/my.cnf文件
[mysqld]
basedir=/home/apps/mysql8
datadir=/home/apps/mysql8/data
port=3306
[mysql_safe]
log-error=/home/apps/mysql8/logs/mysql.log
pid-file=/home/apps/mysql8/mysql.pid
路径根据自己安装mysql 的情况修改
5.创建data文件夹,创建log,pid文件
创建data文件夹
cd mysql;
mkdir data;
创建log和pid
vi /home/apps/mysql8/logs/mysql.log # 空文件即可,保存退出,修改权限
chown -R mysql /home/apps/mysql8/logs/
chgrp -R mysql /home/apps/mysql8/logs/
vi /home/apps/mysql8/mysqld.pid # 保存退出,修改权限
chown -R mysql /home/apps/mysql8/mysql.pid
chgrp -R mysql /home/apps/mysql8/mysql.pid
6.初始化mysql
cd /home/apps/mysql8/bin;
./mysqld --initialize --user=mysql \
--basedir=/home/apps/mysql8/ \
--datadir=/home/apps/mysql8/data
初始化后将会生成一个随机密码,显示如下,将其保存,第一次登陆mysql需要使用
7.进入mysql安装目录下的support-files目录下,将support-files/mysql.server 复制到/etc/init.d/mysql中,以完成自启动mysql
cd /home/apps/mysql8/support-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql # 同时不要忘了设置权限
8.设置mysql开机自启
chkconfig --add mysql
9.创建软连接(建议添加)
ln -s /home/apps/mysql8/bin/mysql /usr/bin
# 需要注意创建软连接需要使用全路径
10.启动mysql服务
service mysql start
11.登陆mysql及修改密码
mysql -u root -p
# 然后使用刚刚的随机密码即可登陆,
# 登陆后第一件事当然是修改密码,那一串乱七八糟的密码谁记得住
ALTER user 'root'@'localhost' IDENTIFIED BY 'newpassword';
# newpassword 是你想要设置的密码
12.配置远程登陆
1.查看当前可登陆mysql 的主机
mysql>use mysql;# 使用mysql库
mysql>select user,host from user;
# host是远程主机地址,可以写成%,即所有远程地址;
结果如下:
显然现在只有本机可以使用这个mysql
2.将mysql数据库user表里的root用户的host改成% ,即所有远程地址都可以访问
mysql>update user set host='%' where user='root';
允许root用户进行登陆
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# root是用户名 mysql默认的是root password是自己设置的密码
# %表示任意主机,也可以指定ip地址.
mysql>GRANT ALL ON *.* TO 'root'@'%';
# 刷新修改
flush privileges;
在/etc/my.cnf中的[mysqld]下添加
skip-name-resolve
注意:配置skip-name-resolve后不能配置skip-grant-tables
在window中使用Navicat连接 常规窗口
ssh连接虚拟机
其中,ssh窗口的密码不是数据库密码,而是登录centos 的密码
13.配置免密登陆
vim /etc/my.conf
# 在[mysqld]下边添加
skip-grant-tables # 配置免密码登录
# 保存退出后重启
mysql service mysql restart