一、前期准备

二、安装MySQL

三、遇到的问题

在删除linux自带的mysql时,yum removemysql-ql-libs.x86_64 出错,提示“无法解析主机”

2.mysqld –user=mysql –basedir=/home/mysql5.7 –datadir=/home/mysql5.7/data –initialize #在初始化mysql是出错:

3.解决磁盘空间不足之后,在初始化mysql的时,又遇到了问题,提示Can’t create/write to file ‘/home/mysql5.7/data/is_writable’ 。


一、前期准备

1. mysql下载

http://链接:https://pan.baidu.com/s/11Ti3G9XaiBCUETkdOFyIOA?pwd=5b14

提取码:5b14

2. 将mysql5.7的jar包上传到linux的root用户下的/home目录下

3. 检查是否安装了MySQL

yum list installed | grep mysql

4. 卸载之前的MySQL(如果没有,则不用执行这一步)

 yum remove mysql-lib.x86_64#这里的mysql-lib.x86_64是上图对应的序号1

5. 删除之后再从新查看一下还有没有mysql

二、安装MySQL

  1. 解压mysql安装包
cd /home #进入到存放mysql压缩包的目录tar -zxvfmysql-5.7.37-linux-glibc2.12-x86_64.tar.gz #解压

2. 重命名(因为名字太长了,为了方便,把解压之后的mysql目录重新命名)

mv mysql-5.7.37-linux-glibc2.12-x86_64mysql5.7

3. 在mysql目录下面创建data目录

mkdir /home/mysql5.7/data 

#创建好之后我们在mysql5.7目录内ll就可以看到创建好的data目录了

4. 创建mysql的用户组和用户,并且给mysql5.7目录设置用户组和用户

注:注意这儿的.必须要,否则会报错。

cd /homegroupadd mysqluseradd mysql -g mysqlcd mysql5.7chown -R mysql . chgrp -R mysql . 

5. 配置my.cnf文件vim /etc/my.cnf ,添加内容

[mysqld] basedir=/home/mysql5.7 datadir=/home/mysql5.7/data port=3306 [client] default-character-set=utf8 [mysql] default-character-set=utf8

6. 修改/etc/selinux/config文件配置,然后重启服务器

vi /etc/selinux/config把SELINUX=enforcing改为SELINUX=disabled,保存退出,然后重启服务器。

注:这里修改/etc/selinux/config文件配置文件之后要,重启虚拟机,不然接下来的操作可能会遇到问题。

7. 创建sock文件目录

mkdir -p /var/lib/mysqlcd /home/mysql5.7chownmysql:mysql/var/lib/mysql

8. 配置mysql环境变量

vim /etc/profile 添加如下内容:export MYSQL_HOME=/home/mysql5.7export PATH=$MYSQL_HOME/bin:$PATH

9.初始化mysql

mysqld --user=mysql --basedir=/home/mysql5.7 --datadir=/home/mysql5.7/data --initialize#初始化完成之后会自动分配一个密码

10. 启动mysql服务器

注:这里三条命名都要执行,要先重启服务器,之后才行

/home/mysql5.7/support-files/mysql.server restart#重启mysql服务器/home/mysql5.7/support-files/mysql.server stop#停止mysql服务器/home/mysql5.7/support-files/mysql.server start#启动mysql服务器

11. 检查mysql服务是否正常

ps -ef | grep mysql

12. 登陆mysql

mysql -u root -p

#登录的时候会提示输入密码,这里的额密码就是初始化的时候分配的密码,把初始化时分配的密码复制黏贴到这里就行了。

注意:复制密码的时候不要多复制了空格;黏贴了密码之后密码是不会显示出来的,黏贴了一次之后直接按回车键就行了,不要黏贴多次,黏贴多次就会提示密码错误。

13.需要注意的是,刚安装的mysql,不能直接使用,需要修改初始密码

set password=password("123456");#这里的123456是要修改的密码,记得在修改密码的时候不要忘记输入;

14. 测试密码是否修改成功

exit#退出mysqlmysql -u root -p #登录mysql#提示输入密码之后,输入刚修改的密码就好了。

三、遇到的问题

  1. 在删除linux自带的mysql时,yum removemysql-ql-libs.x86_64 出错,提示“无法解析主机”

解决办法:

vi/etc/yum.repos.d/CentOS-Base.repo 在文件最下边添加如下内容:[base]name=CentOS-$releaseverenabled=1failovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/os/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6[updates]name=CentOS-$releaseverenabled=1failovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/updates/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6[extras]name=CentOS-$releaseverenabled=1failovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/extras/$basearch/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6[centosplus]name=CentOS-6.10-Plus-mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/centosplus/$basearch/gpgcheck=1enabled=0gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6[contrib]name=CentOS-6.10-Contrib-mirrors.aliyun.comfailovermethod=prioritybaseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/contrib/$basearch/gpgcheck=1enabled=0gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6

添加好之后保存退出,在使用yum命令就可以了。

接下来从新输入yum removemysql-ql-libs.x86_64 ,就可以删除成功了

2.mysqld –user=mysql –basedir=/home/mysql5.7 –datadir=/home/mysql5.7/data –initialize #在初始化mysql是出错:

错误提示如下:

2022-10-15T10:06:23.227276Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).

2022-10-15T10:06:23.262777Z 0 [Warning] InnoDB: Retry attempts for writing partial data failed.

2022-10-15T10:06:23.262816Z 0 [ERROR] InnoDB: Write to file ./ibdata1failed at offset 0, 1048576 bytes should have been written, only 0 were written. Operating system error number 28. Check that your OS and file system support files of this size. Check also that the disk is not full or a disk quota exceeded.

2022-10-15T10:06:23.262849Z 0 [ERROR] InnoDB: Error number 28 means ‘No space left on device’

2022-10-15T10:06:23.262856Z 0 [ERROR] InnoDB:Could not set the file size of ‘./ibdata1’. Probably out of disk space

2022-10-15T10:06:23.262860Z 0 [ERROR] InnoDB: InnoDB Database creation was aborted with error Generic error. You may need to delete the ibdata1 file before trying to start up again.

2022-10-15T10:06:23.869576Z 0 [ERROR] Plugin ‘InnoDB’ init function returned error.

2022-10-15T10:06:23.869641Z 0 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.

2022-10-15T10:06:23.869653Z 0 [ERROR] Failed to initialize builtin plugins.

2022-10-15T10:06:23.869658Z 0 [ERROR] Aborting

原因:这一大长串错误大体说的就是磁盘空间不够

输入: df – h

发现/home 的磁盘空间使用了的显示100%,(这里问题解决了,一开始的错误没有截图,下图是解决了之后的),原因是我的/home目录下存储的东西太多了,我们创建的用户这些也都是默认在home目录下。

解决办法:

方法一:删除一些不用的文件,释放磁盘空间

方法二:对磁盘进行扩容,可以参考下这篇文章http://t.csdn.cn/Balg2

这里我用的是方法一,我把我的一下没用用的用户删了,把里边的一些没有用的文件删除了之后,就释放了一些磁盘空间。就解决了。

对磁盘进行扩容之后,重新初始化mysql就可以了。

3.解决磁盘空间不足之后,在初始化mysql的时,又遇到了问题,提示Can’t create/write to file ‘/home/mysql5.7/data/is_writable’ 。

具体如下:

mysqld: Can’t create/write to file ‘/home/mysql5.7/data/is_writable’ (Errcode: 13 – Permission denied)

2022-11-01T02:30:09.379330Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)

2022-11-01T02:30:09.380177Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

2022-11-01T02:30:09.385902Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).

2022-11-01T02:30:09.449434Z 0 [ERROR] –initialize specified but the data directory exists and is not writable. Aborting.

2022-11-01T02:30:09.449614Z 0 [ERROR] Aborting

原因:这是因为权限不够,在安装mysql的时候,为了防止之后使用mysql的时候出现权限问题,所以安装mysql的时候我们是在root用户下安装的。我安装mysql的也是在root用户下安装的,然后出现权限问题是因为我没有在root用户下初始化mysql,我初始化mysql的时候忘记回到root用户了。如果你的mysql安装的时候没有在root用户下安装的话,建议从新在root用户安装。

解决办法:

回到root用户,在初始化。