• 一、下载mysql
  • 1、进入官网
  • 2、版本选择
  • 二、安装
  • 1、上传安装文件
  • 2 xshell 命令查看
  • 3、将安装包移动到user/localx 目录下
  • 4、解压mysql安装包
  • 5、建立软连接
  • 6、创建mysql用户
  • 7、建立mysql数据目录,并赋予权限
  • 8、配置mysql参数
  • 9、mysql初始化
  • 10.登陆mysql
  • 三、安装相关问题
  • 1、没有生成mysql.sock文件
  • 2 配置环境变量
  • 3、启动mysql服务
  • 4、带端口号的tcp/ip 连接
  • 5、重新设置密码
  • 6、解决不能生成mysql.sock文件问题
  • 四、设置远程连接
  • 1、设置user表
  • 2、本地dos访问虚拟机的mysql



这久想开始学习linux系统,所以就尝试在虚拟机上的centos7上安装mysql,以达到学习linux的效果。

一、下载mysql

1、进入官网

mysql 官网:https://www.mysql.com oracle已经收购mysql,进入oracle 官网也可以找到mysql安装包下载:https://www.oracle.com/index.html

Linux 环境下安装mysql5.7.23以及常见问题_mysql


mysql 选择社区版 :mysql和大多数开源产品的路线一样,分为社区版和商业版。,社区版的开发及测试环境没有那么严格.遵守GPL协议(通用性公开许可证)。

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_02

Linux 环境下安装mysql5.7.23以及常见问题_mysql_03

2、版本选择

2.1.选择开源的社区版稳定版GA版本

2.2.可以选择5.1或5.5,互联网公司主流5.5,其次5.1或者5.6

2.3.选择mysql数据库GA版发布后6个月以上的GA版本

2.4.要选择前后几个月没有大的bug修复版本,而不是大量修复bug的集中版本

2.5.考虑开发人员开发程序使用的版本是否兼容你选的版本.作为内部开发测试数据库环境,跑大概3-6个月时间.

我这里选择了5.7

Linux 环境下安装mysql5.7.23以及常见问题_mysql_04

Linux 环境下安装mysql5.7.23以及常见问题_mysql_05

上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。
二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

Linux 环境下安装mysql5.7.23以及常见问题_mysql_06

无需登陆,直接开始下载。

二、安装

1、上传安装文件

mysql 下载后,通过xshell文件上传到centos7虚拟机上

Linux 环境下安装mysql5.7.23以及常见问题_mysql_07

2 xshell 命令查看

Linux 环境下安装mysql5.7.23以及常见问题_mysql_08

3、将安装包移动到user/localx 目录下

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_09

Linux 环境下安装mysql5.7.23以及常见问题_mysql_10

4、解压mysql安装包

tar -zxvf  mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

重命名文件

mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

5、建立软连接

建议一般不要修改默认文件名,通过软连接来完成

ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql

Linux 环境下安装mysql5.7.23以及常见问题_mysql_11

6、创建mysql用户

useradd mysql

7、建立mysql数据目录,并赋予权限

7.1在根目录下

mkdir -p data
 cd data
 mkdir -p mysql

7.2授权

chown mysql:mysql -R /data/mysql

看到data 的用户变成了mysql

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_12

8、配置mysql参数

在/etc目录下创建my.cnf文件,并进行配置

vim /etc/my.cnf

[mysqld]
bind-address=0.0.0.0
port=3310
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
!includedir  /etc/my.cnf.d

这里只是简单的配置mysql运行的几个参数。

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_13

注意:log-error 一定要配置,因为如果mysql启动错误,可以从日志文件中找到错误原因。其次bind—address配置0.0.0.0是为了监听所有的连接。 编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 。

9、mysql初始化

9.1注意这里需要进到刚刚解压mysql的bin目录下

cd usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看错误日志文件是否有错

vim /data/mysql/mysql.err

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_14


可以看到日志有错误提示,提示与刚刚初始化命令中datadir相关

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_15

看到刚刚初始化命令中datadir前面少了–,所以大家安装的时候一定要细心。

9.2 重新初始化

注意重新初始化之前一定要把datadir目录下的文件清空,不然初始化还会报错进入到datadir目录 删除数据

cd /data/mysql/
 rm -rf *

删除后,重新初始化

cd /usr/local/mysql/bin/
  ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

再次查看错误日志文件是否有错

vim /data/mysql/mysql.err

Linux 环境下安装mysql5.7.23以及常见问题_mysql_16

可以看到到日志文件没有报错,而且有了临时密码,表示初始化成功

10.登陆mysql

10.1、初始化成功后,查看初始化密码

cat /data/mysql/mysql.err |grep password

Linux 环境下安装mysql5.7.23以及常见问题_mysql_17


并把密码复制下来

到这里的时候,发现这个xshell背景太丑,字体太小。设置了下xshell背景,效果下面可见。

10.2、登录mysql

./mysqladmin -u root -p password

并输入刚刚复制的密码,但是 却提示不能通过mysql.sock文件实现连接

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_18

三、安装相关问题

1、没有生成mysql.sock文件

查找mysql.sock 文件

find / -name mysql.sock

Linux 环境下安装mysql5.7.23以及常见问题_mysql_19

表示没有找到mysql.sock文件。

所以就尝试重启服务器即我的虚拟机,看服务器在启动时会不会重新创建该文件,然而重启后并没有卵用

Linux 环境下安装mysql5.7.23以及常见问题_mysql_20


又百度了下说连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。可以通过tcp/ip协议来连接。

即:

mysql -uroot -h 127.0.0.1 -p

但是 又又报错了

Linux 环境下安装mysql5.7.23以及常见问题_mysql_21

2 配置环境变量

表示不认识mysql命令,到目前位置还未配置环境变 即没有将mysql的bash加到path中。
编辑环境变量文件

vim /etc/profile

在后面添加系统bin路径以及mysql解压路径

export MYSQL_HOME=/usr/local/mysql/
export PATH=$PATH:$MYSQL_HOME/bin

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_22

配置好后再重启Xshell
然后再执行
mysql -uroot -h 127.0.0.1 -p

然后再输入刚刚临时文件的密码,但是 又又又报错了, 我内心快要崩溃了

Linux 环境下安装mysql5.7.23以及常见问题_mysql_23

到这里,又去问度娘,可能mysql服务没有启动,对啊,刚刚重启了虚拟机,并没有启动mysql服务。

3、启动mysql服务

service mysql start

Linux 环境下安装mysql5.7.23以及常见问题_mysql_24

mysql启动成功后,再通过tcp/ip连接,就在以为快要打工告成的时候,居然又报了同样的错

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_25

4、带端口号的tcp/ip 连接

那到这里,估计就是端口号的问题了, 百度了下mysql -h -uroot -p 命令默认的窗口是3306, 而我配置文件里的窗口是3310所以这里还需要指定端口号,真的是想要与众不同,结果可把自己坑惨了……

mysql -h 127.0.0.1 -uroot -p --port=3310

然后再输入密码:

终于等到你……

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_26

5、重新设置密码

这里需要先重新设置密码,不然进行数据库操作

set password=password('123456');
flush privileges; 并刷新权限

如果不先设置密码会提示如下错

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

然后数据库就可以使用了

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_27

6、解决不能生成mysql.sock文件问题

mysql.sock 是在配置文件my.cnf中。因为原来的位置不能生成,所以把原来的配置注释掉,重新配置一个路径。
6.1修改my.cnf

vim /etc/my.cnf

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_28


6.2 重启mysql 服务

service mysql restart

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_29

重启服务后我们进入新配置的socket路径下看到了mysql.sock身影

Linux 环境下安装mysql5.7.23以及常见问题_mysql_30

通过这个socket文件连接数据库,成功连接

mysql -u root -p -S /data/mysql/mysql.sock

建立软连接

ln -s  /data/mysql/ /tmp/

然后也可以使用tmp路径登陆

mysql -u root -p -S /tmp/mysql.sock

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_31

四、设置远程连接

1、设置user表

如果要远程访问数据库,只需要把拥有全部权限的root账号对应的记录的Host字段改为%就可以了。

update user  set Host = '%' where Host = 'localhost' and  user = 'root';
select host,user from user;

Linux 环境下安装mysql5.7.23以及常见问题_mysql_32

在本地windows环境下访问虚拟机上的mysql
查看虚拟机的的ip

ifconfig -a

Linux 环境下安装mysql5.7.23以及常见问题_Linux 环境安装mysql实例演示_33

2、本地dos访问虚拟机的mysql

mysql -h 192.168.85.128 -uroot -p --port=3310

可以正常访问:

Linux 环境下安装mysql5.7.23以及常见问题_mysql_34

经过一天的折腾总算是把mysql安装成功,其中也通过度娘解决了很多问题,对linux命令仍然不熟悉,不理解其中意思,很多只是照着葫芦画瓢,linux学习任重而道远。


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: mysqllinux