虚拟机的linux安装mysql5.7

安装

这几天在安装虚拟机linux
并且在linux安装jdk和tomcat还算顺利
安装jdk和tomcat根据网上的教程来都安好了
到mysql的时候一大堆问题,搞了半天还好安装好了
自己写一个教程来备忘

绝大部分都是参照这个来装的
https://blog.csdn.net/pdsu161530247/article/details/81585889
但是有些碰见一些跟他不一样的
于是自己百度又搞了半天

1)卸载

卸载点这里
懒得说了
网上卸载的一大堆
有就卸

2)下载

先进入/usr/local

[root@localhost local]# cd /usr/local

然后下载

[root@localhost local]# wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

这个下载比较快点

图片
然后解压

[root@localhost local]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

在这里插入图片描述
删除安装包

[root@localhost local]# rm -f mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

在这里插入图片描述
修改文件名为mysql57

[root@localhost local]# mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql57

懒得截图了

进入/mysql57创建data文件夹

[root@localhost local]# cd mysql57
[root@localhost mysql57]# mkdir data

3)创建mysql用户组和mysql用户

#查看有没有mysql组
[root@localhost mysql57]# cat /etc/group | grep mysql
查看有没有mysql用户
[root@localhost mysql57]# cat /etc/passwd |grep mysql
若没有则创建mysql组
#创建mysql用户组
[root@localhost mysql57]# groupadd mysql
#创建mysql用户并添加到mysql用户组中(//useradd -r参数表示mysql用户是系统用户,不可用于登录系统;第一个mysql是用户组,第二个mysql是用户) 
[root@localhost mysql57]# useradd -r -g mysql mysql
#检查用户组是否创建成功
[root@localhost mysql57]# groups mysql

但我的是这样的
虚拟机的linux安装mysql5.7_第1张图片
问题不大

4)设置mysql目录访问权限,用户组

#将mysql目录访问权限赋为myql用户
[root@localhost mysql57]# chown -R mysql /usr/local/mysql57
#改变mysql目录的用户组属于mysql组
[root@localhost mysql57]# chgrp -R mysql /usr/local/mysql57
#查看mysql目录下所有的目录及文件夹所属组合用户
[root@localhost mysql57]# cd /usr/local/mysql57
[root@localhost mysql57]# ll
total 56
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 bin
-rw-r--r--  1 mysql mysql 17987 Dec 28  2017 COPYING
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:40 data
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 docs
drwxr-xr-x  3 mysql mysql  4096 Aug 11 21:23 include
drwxr-xr-x  5 mysql mysql  4096 Aug 11 21:24 lib
drwxr-xr-x  4 mysql mysql  4096 Aug 11 21:23 man
-rw-r--r--  1 mysql mysql  2478 Dec 28  2017 README
drwxr-xr-x 28 mysql mysql  4096 Aug 11 21:24 share
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 support-files

我的是这样
虚拟机的linux安装mysql5.7_第2张图片
差不多

5)配置mysql

A)创建文件/tmp/mysql.sock。并设置权限

a.创建文件

[root@localhost mysql57]# mkdir tmp
[root@localhost mysql57]# cd tmp
[root@localhost tmp]# ll
total 0
[root@localhost tmp]# touch mysql.sock
[root@localhost tmp]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 11 21:59 mysql.sock

b.设置权限

[root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysql.sock
[root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysql.sock

这里都是一样的

B ) 创建/log/mysqld.log。并设置权限

[root@localhost mysql57]# mkdir log
[root@localhost mysql57]# cd log
[root@localhost log]# ll
total 0
[root@localhost log]# touch mysqld.log
[root@localhost log]# chown -R mysql:mysql /usr/local/mysql57/log/mysqld.log
[root@localhost log]# chmod 755 /usr/local/mysql57/log/mysqld.log

如果出错,说明路径没有写全,要写绝对路径
记得要到mysql里面创建

C ) 创建/tmp/mysqld.pid。并设置权限

[root@localhost log]# cd ../tmp
[root@localhost tmp]# touch mysqld.pid
[root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysqld.pid 
[root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysqld.pid

6)初始化mysql

[root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/

报错的话可以去这里看看
我的是没问题
在这里插入图片描述
最后一排 root@localhost:后面的是密码

继续,配置SSL参数

[root@localhost mysql57]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql57/data/

虚拟机的linux安装mysql5.7_第3张图片
由于mysql-5.7.23版本my.cnf不在/support-files下,故我们创建my.cnf文件

[root@localhost mysql57]# touch /etc/my.cnf
[root@localhost mysql57]# vim /etc/my.cnf

复制过去 按i修改
修改完后按esc,输入:wq保存
:wq不行就:wq!

[mysqld]
skip-grant-tables
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql57
datadir=/usr/local/mysql57/data
port = 3306
socket=/tmp/mysql.sock
log-error=/usr/local/mysql57/log/mysqld.log
pid-file=/usr/local/mysql57/tmp/mysqld.pid
#表名不区分大小写
lower_case_table_names = 1
max_connections=5000
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

7)启动mysql

配置mysql自动启动(可根据需要配置)

[root@localhost mysql57]# cp support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql57]# vim /etc/init.d/mysql

虚拟机的linux安装mysql5.7_第4张图片
本来basedir 和datadir 的等于后面是没有的
给他加上

若配置了mysql自启动方式则可以使用服务方式启动mysql

#查看mysql状态
/etc/init.d/mysql status 或者 service mysql status
#启动mysql
/etc/init.d/mysql start 或者 service mysql start
#停止mysql
/etc/init.d/mysql stop 或者 service mysql stop
#重新启动mysql
/etc/init.d/mysql restart 或者 service mysql restart
查看mysql服务说明启动成功
ps -ef|grep mysql

启动mysql

[root@localhost mysql57]# service mysql start
Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql57/tmp/mysqld.pid).

报错了,上面说没有/usr/local/mysql57/tmp/mysqld.pid。

解决
创建文件/usr/local/mysql57/tmp/mysqld.pid

[root@localhost /]# touch /usr/local/mysql57/tmp/mysqld.pid

修改权限
修改存放mysqld.pid文件目录的权限

[root@localhost tmp]# chown -R mysql /usr/local/mysql57/tmp
[root@localhost tmp]# chgrp -R mysql /usr/local/mysql57/tmp
[root@localhost tmp]# chmod 777 /usr/local/mysql57/tmp

重新启动成功(如果还不行,就是中间某个步骤写错了。或者直接把mysql目录权限赋为777)虚拟机的linux安装mysql5.7_第5张图片

8)配置mysql到环境变量

[root@localhost tmp]# vim /etc/profile

把这个加进去

export MYSQL57_HOME=/usr/local/mysql57  #mysql5.7/bin路径
export PATH=$PATH:${MYSQL57_HOME}/bin

虚拟机的linux安装mysql5.7_第6张图片
PATH之前配过直接在后面加:再加${MYSQ57_HOME}/bin就行

设置环境变量立即生效

[root@localhost /]# source /etc/profile

这样就可以在任何地方通过 mysql -u root -p 进去数据库了,不用到数据库bin目录下了

9)mysql设置密码

因为上面之前在虚拟机的linux安装mysql5.7_第7张图片
这个地方加了“skip-grant-tables”
可以直接进去数据库不用输入密码

[root@localhost /]# mysql

直接进入数据库
虚拟机的linux安装mysql5.7_第8张图片
进不去的(需要密码或者其他的)重启数据库试试

[root@localhost /]# service mysql restart

这样重启也可以
在这里插入图片描述

然后使用sql语句修改密码

mysql> use mysql;
mysql> update user set authentication_string=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit

虚拟机的linux安装mysql5.7_第9张图片
重新编辑my.cnf
去掉[mysqld]后面的“skip-grant-tables”
也就是去掉不要密码的那个

[root@localhost /]# vim /etc/my.cnf

怎么修改文件我就懒得说了,上面说过了

重启mysql

[root@localhost /]# /etc/init.d/mysql restart

本地登录mysql

[root@localhost /]# mysql -uroot -p

虚拟机的linux安装mysql5.7_第10张图片
输入密码没问题就行

然后继续

mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

输入use mysql报错了
解决方案:需要重新修改一下密码

mysql> alter user 'root'@'localhost' identified by '修改的密码';
mysql> flush privileges;
mysql> quit;

虚拟机的linux安装mysql5.7_第11张图片
继续配置mysql
进入

[root@localhost /]# mysql -uroot -p

配置

mysql> use mysql;
mysql> update  user  set host='%' where user='root';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; 
mysql> quit;

虚拟机的linux安装mysql5.7_第12张图片
重启

[root@localhost /]# service mysql restart;

到这里mysql我的就配置完了
后面我是用windows的navicat连接虚拟机linux的mysql

10)windows的navicat连接虚拟机linux的mysql

a)连接mysql*

[root@localhost /]# mysql -u root -p

将权限授予其他电脑,其中’123456’就是你自己设置的密码

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; 
mysql> quit;

清除防火墙中链中的规则

[root@localhost /]# iptables -F

b)查看ip

[root@localhost /]# ifconfig

复制圈出来的地方
虚拟机的linux安装mysql5.7_第13张图片
打开windows的navicat
虚拟机的linux安装mysql5.7_第14张图片
连接成功!

你可能感兴趣的:(虚拟机的linux安装mysql5.7)