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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/whandgdh/article/details/83177693


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

一、下载mysql

1、进入官网

mysql 官网:https://www.mysql.com
oracle已经收购mysql,进入oracle 官网也可以找到mysql安装包下载:https://www.oracle.com/index.html
在这里插入图片描述
mysql 选择社区版 :mysql和大多数开源产品的路线一样,分为社区版和商业版。,社区版的开发及测试环境没有那么严格.遵守GPL协议(通用性公开许可证)。
在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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

二、安装

1、上传安装文件

mysql 下载后,通过xshell文件上传到centos7虚拟机上
在这里插入图片描述

2 xshell 命令查看

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

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
在这里插入图片描述

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运行的几个参数。
在这里插入图片描述

注意: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 

在这里插入图片描述
可以看到日志有错误提示,提示与刚刚初始化命令中datadir相关

在这里插入图片描述

看到刚刚初始化命令中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 

在这里插入图片描述 可以看到到日志文件没有报错,而且有了临时密码,表示初始化成功

10.登陆mysql

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

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

在这里插入图片描述
并把密码复制下来
到这里的时候,发现这个xshell背景太丑,字体太小。设置了下xshell背景,效果下面可见。

10.2、登录mysql

 ./mysqladmin -u root -p password

并输入刚刚复制的密码,但是 却提示不能通过mysql.sock文件实现连接
在这里插入图片描述

三、安装相关问题

1、没有生成mysql.sock文件

查找mysql.sock 文件

find / -name mysql.sock

在这里插入图片描述

表示没有找到mysql.sock文件。
所以就尝试重启服务器即我的虚拟机,看服务器在启动时会不会重新创建该文件,然而重启后并没有卵用
在这里插入图片描述
又百度了下说连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。可以通过tcp/ip协议来连接。
即:


 mysql -uroot -h 127.0.0.1 -p 

但是 又又报错了
在这里插入图片描述

2 配置环境变量

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

vim /etc/profile

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

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

在这里插入图片描述

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

然后再输入刚刚临时文件的密码,但是 又又又报错了, 我内心快要崩溃了
在这里插入图片描述

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

3、启动mysql服务

service mysql start

在这里插入图片描述

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

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

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

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

然后再输入密码:
终于等到你……
在这里插入图片描述

5、重新设置密码

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

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

如果不先设置密码会提示如下错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
然后数据库就可以使用了
在这里插入图片描述

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

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

vim /etc/my.cnf

在这里插入图片描述
6.2 重启mysql 服务

 service mysql restart

在这里插入图片描述

重启服务后我们进入新配置的socket路径下看到了mysql.sock身影
在这里插入图片描述

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

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

建立软连接

ln -s  /data/mysql/ /tmp/

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

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

在这里插入图片描述

四、设置远程连接

1、设置user表

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

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

在这里插入图片描述

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

ifconfig -a

在这里插入图片描述

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

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

可以正常访问:
在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/whandgdh/article/details/83177693