您现在的位置是:首页 > 正文

linux上安装MySQL

2024-04-01 05:05:17阅读 4

一、前期准备

二、安装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

二、安装MySQL

  1. 解压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
#提示输入密码之后,输入刚修改的密码就好了。

三、遇到的问题

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

 解决办法:

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 ,就可以删除成功了

  

 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用户,在初始化。

网站文章