一、前期准备
二、安装MySQL
三、遇到的问题
在删除linux自带的mysql时,yum remove mysql-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
cd /home #进入到存放mysql压缩包的目录
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz #解压
2. 重命名 (因为名字太长了,为了方便,把解压之后的mysql目录重新命名)
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql5.7
3. 在mysql目录下面创建data目录
mkdir /home/mysql5.7/data
#创建好之后我们在mysql5.7目录内ll就可以看到创建好的data目录了
4. 创建mysql的用户组和用户,并且给mysql5.7目录设置用户组和用户
注:注意这儿的.必须要,否则会报错。
cd /home
groupadd mysql
useradd mysql -g mysql
cd mysql5.7
chown -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/mysql
cd /home/mysql5.7
chown mysql:mysql /var/lib/mysql
8. 配置mysql环境变量
vim /etc/profile
添加如下内容:
export MYSQL_HOME=/home/mysql5.7
export 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 #退出mysql
mysql -u root -p #登录mysql
#提示输入密码之后,输入刚修改的密码就好了。
解决办法:
vi /etc/yum.repos.d/CentOS-Base.repo
在文件最下边添加如下内容:
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[centosplus]
name=CentOS-6.10 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
[contrib]
name=CentOS-6.10 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos-vault/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/centos/RPM-GPG-KEY-CentOS-6
添加好之后保存退出,在使用yum命令就可以了。
接下来从新输入yum remove mysql-ql-libs.x86_64 ,就可以删除成功了
错误提示如下:
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就可以了。
具体如下:
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用户,在初始化。