1、MySQL安装方式
二进制软件包安装
yum安装或rpm安装
glibc版本安装
命名:mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
源码包编译安装
命名:mysql-5.7.31.tar.gz,通用的Linux下都可以编译安装。
2、三种安装方式的区别
安装方式 | 优点 | 缺点 |
---|---|---|
rpm | 安装卸载简单 | 可定制性差 |
glibc | 可定制性相比rpm包灵活些 | 安装相比rpm包复杂些,需要手动初始化数据库 |
源码安装 | 可定制性最强,根据需求和功能定制 | 安装麻烦,需要手动初始化数据库 |
在企业中数据库的安装大部分都是基于源码安装以及glibc安装
MySQL的GLIBC版本安装
1、获取MySQL GLIBC版本
2、看官方文档
3、安装MySQL依赖库软件
第一步:克隆模板机,生成MySQL服务器
第二步:启动系统
第三步:更改主机名称为mysql,然后重启网络
hostnamectl set-hostname mysql
第四步:拍摄快照
第五步:安装依赖库libaio库
yum install libaio -y
4、上传软件包解压,了解目录结构
打开mobatermx,目录设为/root,将mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz拉进来
tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
tar -xf mysql-8.4.1-linux-glibc2.28-x86_64.tar.xz
ls mysql-5.7.31-linux-glibc2.12-x86_64
ls mysql-8.4.1-linux-glibc2.28-x86_64
安装需求:
选项 | 值(自定义也可以采用默认形式) |
---|---|
安装路径 | /mysql_3306 |
数据路径 | /mysql_3306/data |
端口号 | 3306 |
5、软件的安装(查看官方说明)
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
第一步:创建一个数据库专用账号mysql(其所属组也为mysql)
useradd -r -s /sbin/nologin mysql
id mysql
第二步:清空系统中的原有mariadb的配置文件(/etc/my.cnf)
rm -rf /etc/my.cnf
第三步:把mysql解压后的压缩包(GBLIC版本)移动到/根目录下,然后更名为mysql_3306
mv mysql-5.7.31-linux-glibc2.12-x86_64 /mysql_3306
#mv mysql-8.4.1-linux-glibc2.28-x86_64 /mysql_3308
第四步:切换到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账号的密码,以备后期使用。
2024-07-12T11:28:32.092001Z 1 [Note] A temporary password is generated for root@localhost: U/z9t+H6gfoV
想查看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
第九步:启动MySQL数据库(不能使用systemctl,只能使用service)
[root@mysql mysql_3306]# service mysql_3306 start
Starting MySQL.Logging to '/mysql_3306/data/mysql.itcast.cn.err'.
SUCCESS!
当MySQL启动成功后,其日志会自动写入到data数据目录中的主机名称.err文件中,这个文件一定要多看,涉及MySQL无法启动、启动报错,其详细的原因在.err文件中可以找到
如何让mysql自动启动?
chkconfig --list 查询系统中的所有开机启动项
chkconfig --add mysql_3306 必须与/etc/init.d目录下的脚本名称一致
chkconfig mysql_3306 on 把2345四种模式全部开启(3字符界面,5图形界面)
7、MySQL GLIBC版本后续配置
第一步:更改管理员root账号的密码
- 方法1:
[root@node1 mysql_3306]# bin/mysqladmin -uroot password 'U/z9t+H6gfoV' -p
Enter password:输入刚刚初始化产生的临时密码
- 方法2
bin/mysql -uroot -p
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:
第三步:手工定义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
第四步:安全配置(对于生产环境比较重要)
mysql_secure_installation
两下enter然后yes到底
其主要就是是否启动密码脚尖器、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。
常见问题:如何关闭MySQL密码强度检测?
# vim /mysql_3306/my.cnf
[mysqld]
...
validate_password=OFF
# service mysql_3306 restart
pw = yangyang
五、MySQL的源码编译安装
1、参考MySQL源码安装官方文档
官方文档:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
源码安装三步曲:配置——>编译——>安装
2、MySQL的源码编译安装
建议大家在源码编译安装之前,先拍摄一个快照
第一步:安装MySQL编译需要用到的依赖库
yum -y install ncurses-devel cmake libaio-devel openssl-devel
第二步:上传软件到服务器端并解压
tar -xf mysql-boost-5.7.31.tar.gz
cd mysql-5.7.31
第三步:配置(基于cmake进行配置)
vim myconfig.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/mysql_3307 \
-DMYSQL_DATADIR=/mysql_3307/data \
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_UNIX_ADDR=/mysql_3307/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_BOOST=boost
选项说明:
-DCMAKE_INSTALL_PREFIX :安装路径
-DMYSQL_DATADIR :数据目录
-DMYSQL_TCP_PORT :端口号
-DMYSQL_UNIX_ADDR :套接字文件位置
chmod +x myconfig.sh
./myconfig.sh
第四步:编译安装
make -j2 && make install
选项说明:
-j2 :代表同时开启多个线程共同实现编译操作
3、编译报错常见问题解析
编译安装中途报错,重新编译一下
# rm -f CMakeCache.txt
# make -j2 && make install
4、MySQL数据库的初始化
**注意:**进入到安装目录里/mysql_3307
# cd /mysql_3307
第一步:创建mysql-files目录
创建系统变量`secure_file_priv`限制导入导出目录并修改权限
# mkdir mysql-files
# chown -R mysql:mysql /mysql_3307
# chmod 750 mysql-files
第二步:数据库初始化操作
# bin/mysqld --initialize --user=mysql --basedir=/mysql_3307 --datadir=/mysql_3307/data
...
2024-07-12T14:10:03.381141Z 1 [Note] A temporary password is generated for root@localhost: ubuZmEEAB5,q
第三步:拷贝mysql.server脚本到/etc/init.d目录,然后启动数据库
# cp support-files/mysql.server /etc/init.d/mysql_3307
# service mysql_3307 start
5、MySQL源码编译安装后的后续配置
第一步:编写MySQL配置文件,my.cnf
# vim /mysql_3307/my.cnf
[mysqld]
basedir=/mysql_3307
datadir=/mysql_3307/data
socket=/mysql_3307/mysql.sock
# service mysql_3307 restart
第二步:设置管理员的密码
# bin/mysqladmin -uroot password 'yangyang' -p
Enter password:ubuZmEEAB5,q
第三步:安全设置
# bin/mysql_secure_installation
第四步:添加mysql_3307到开机启动项
# chkconfig --add mysql_3307
# chkconfig mysql_3307 on