ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL glibc 方式安装

2022-06-21 00:02:14  阅读:163  来源: 互联网

标签:files 初始化 glibc MySQL etc mysql 3306 安装 目录


 一 软件包介绍

mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
说明:通用linux下的二进制包,已编译好,只需放到相应的安装目录里即可

操作系统:centos7.6 

- 依赖库安装

shell> yum install libaio

二 安装步骤

创建mysql用户

useradd -rs   mysql  /sbin/nologin
id mysql
uid=998(mysql) gid=996(mysql) groups=996(mysql)

清空环境

rm -f /etc/my.cnf

 创建安装目录
mv mysql-5.7.31-linux-glibc2.12-x86_64 /mysql_3306

切换到mysql工作目录/mysql_3306,创建一个mysql-files

# cd /mysql_3306
# mkdir mysql-files

更改mysql-files权限

# chown mysql:mysql mysql-files
# chmod 750 mysql-files

初始化数据库(可以实现数据库的初始化,而且会产生一个==随机密码==)

# bin/mysqld --initialize --user=mysql --basedir=/mysql_3306
选项说明:
--initialize      初始化(真正开始干活)
--user=mysql      以mysql用户的身份初始化数据库,产生文件都是mysql作为拥有者
--basedir=xxx    mysql其安装目录,非常重要

运行完毕后,观察最后一行,保存root账号的密码,以备后期使用。
2020-08-24T06:46:24.889735Z 1 [Note] A temporary password is generated for root@localhost: *****
```

> 经验之谈:想查看mysql软件有没有初始化成功,主要看mysql目录下有没有产生data文件夹且文件夹中至少要有一个mysql的文件夹。

设置安全加密连接(SSL),数据传输会采用加密形式,适合敏感数据

# bin/mysql_ssl_rsa_setup --datadir=/mysql_3306/data

启动MySQL数据库

# cp support-files/mysql.server /etc/init.d/mysql_3306

> 注:默认情况下,GBLIC版本的数据库要求安装到/usr/local/mysql目录,其mysql.server脚本中对应的目录也是/usr/local/mysql,这会导致mysql无法启动。所以可以更改其basedir以及datadir两个变量

# vim /etc/init.d/mysql_3306
46行 basedir=/mysql_3306
47行 datadir=/mysql_3306/data

 

# service mysql_3306 start
Starting MySQL.Logging to '/mysql_3306/data/mysql.itcast.cn.err'.

> 特别说明:当MySQL启动成功后,其日志会自动写入到data数据目录中的主机名称.err文件中,这个文件一定要多看,涉及MySQL无法启动、启动报错,其详细的原因99%在.err文件中可以找到问题所在!

 

软件的安装常见问题答疑

 

 问题1:为什么一定要删除/etc/my.cnf文件,不删除有何影响?

答:/etc/my.cnf文件是操作系统为mariadb软件预留的配置的文件,之所以一定要删除这个文件,主要原因在于数据库在初始化时,首先在自己的安装目录下寻找有没有my.cnf配置文件,如果有,会自动根据里面的配置信息进行初始化。如果找不到,则到/etc目录下寻找my.cnf文件,如果有,依然会按照其内部的配置进行初始化,但是由于/etc目录下的my.cnf文件是mariadb的,这会导致我们的初始化如果按照mariadb的配置,会导致初始化失败。



问题2:mysql-files文件夹到底干什么的?

答:目前mysql-files没有什么用,但是你必须要创建,因为GLIBC属于二进制软件包,其很多配置已经默认了,包括mysql-files文件夹,如果没有这个文件夹可能导致mysql无法启动。

> mysql-files:主要用于数据文件的导入与导出(备份与还原),MySQL的备份会产生一个文件,可以xxx.sql或xxx.txt。mysql-files就是导入与导出时,所指定的默认目录。



问题3:到底怎么判断数据库是否初始化成功了?

答:数据库的安装容易出错的地方就是初始化,一旦初始化失败了,数据库100%启动报错。如何确认数据库是否初始化成功了呢?主要看安装目录下有没有生成一个==data==的文件夹。

>一定要看准一点,文件夹名称叫data(数据目录),不是date(时间)



问题4:为什么一定要把mysql.server放在/etc/init.d目录下,不放行不行?

答:不放也可以,但是这个时候就不能使用service命令启动以及添加到开机启动项了。只能通过bin/mysqld_safe脚本启动数据库。

> /etc/init.d是CentOS6以及早期版本中的服务脚本目录,只要把Shell启动脚本放在这个目录下,你就可以使用service进行管理。



问题5:为什么一定要改变/etc/init.d/mysql_3306中的basedir与datadir?

答:GLIBC版本属于二进制版本,默认已经配置了很多内容,包括默认的安装路径/usr/local/mysql,一旦你的mysql没有安装在这个目录下,则必须手工设置basedir以及datadir其位置,否则脚本无法启动mysql程序



问题6:如何让mysql自动启动?

```powershell
# chkconfig --list                查询系统中的所有开机启动项
# chkconfig --add mysql_3306    必须与/etc/init.d目录下的脚本名称一致
# chkconfig mysql_3306 on        把2345四种模式全部开启(3字符界面,5图形界面)
```

> CentOS6及以前版本中,控制服务的开机启动的

 

MySQL GLIBC版本后续配置

 

 第一步:更改管理员root账号的密码


[root@node1 mysql_3306]# bin/mysqladmin -u root -p
Enter password:输入刚刚初始化产生的临时密码
```

mysql> set password='123';                   

重置完成后,建议刷新权限,让其立即生效
mysql> flush privielges;

第二步:把mysql客户端命令添加到环境变量,以后随时可以访问

# echo 'export PATH=$PATH:/mysql_3306/bin' >> /etc/profile
# source /etc/profile

设置完成后,我们可以在任意位置调用mysql客户端命令
# mysql -uroot -p
Enter password:123

第三步:手工定义MySQL的配置文件(非常重要)

# vim /mysql_3306/my.cnf
[mysqld]
basedir=/mysql_3306
datadir=/mysql_3306/data
socket=/tmp/mysql.sock
选项说明:
[mysqld]    代表针对服务器端进行配置
basedir        代表数据库的安装目录
datadir        代表数据目录,以后专门用于存放数据文件的(核心目录)
socket        代表套接字文件,专门为客户端与服务器端连接提供一个桥梁

# service mysql_3306 restart
```

> C(Client) === mysql命令   连(socket套接字)接   mysqld服务器端程序

 第四步:安全配置(对于生产环境比较重要)

```powershell
# mysql_secure_installation
```

一路Y,搞定!

> 其主要就是是否启动密码脚尖器、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。

常见问题:如何关闭MySQL密码强度检测?

```powershell
# vim /mysql_3306/my.cnf
[mysqld]
...
validate_password=OFF

# service mysql_3306 restart

标签:files,初始化,glibc,MySQL,etc,mysql,3306,安装,目录
来源: https://www.cnblogs.com/ryan1986/p/16395240.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有