一、Msql在服务器中的部署方法
官网:http://www.mysql.com
在企业中90%的服务器操作系统均为Linux
在企业中对于Mysql的安装通常用源码编译的方式来进行
1.1 在Linux下部署MySQL
1.1.1 部署环境
主机 | IP | 角色 |
---|---|---|
MySQL-node1 | 172.25.254.13 | master |
MySQL-node2 | 172.25.254.23 | slave1 |
MySQL-node3 | 172.25.254.33 | slave2 |
注意:在部署MySQL前,先检查主机中的环境是否含有其他数据库,保持环境的纯净性,以防在部署时出现其他错误。另外以下所有案例的实现操作系统都为Rhel 7.9
# 检查是否含有其他数据库,一般为Maridb
[root@mysql-node ~]# rpm -qa | grep mariadb
[root@mysql-node ~]# yum remove mariadb # 移除mariadb
# 关闭防火墙
[root@mysql-node1 mysql]# systemctl stop firewalld
[root@mysql-node1 mysql]# systemctl mask firewalld
[root@mysql-node1 mysql]# setenforce 0
1.1.2 下载并解压MySQL源码包
(1)进入到MySQL官网
(2)选择MySQL Community Downloads
(3)选择Archives
(4)自行选择版本下载
(5)选择链接在Linux中进行下载并解压源码包
[root@mysql-node1 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz # 下载源码包
[root@mysql-node1 ~]# tar zxf mysql-boost-5.7.44.tar.gz # 解压源码包
[root@mysql-node1 ~]# cd /root/mysql-5.7.44 # 进入到解压目录
1.1.3 安装依赖性
[root@mysql-node3 mysql-5.7.44]# yum install cmake gcc-c++ openssl-devel \
> ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rp^Cen.x86_64 -y
1.1.4 源码编译安装MySQL
[root@mysql-node1 mysql-5.7.44]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ # 指定安装路径
> -DMYSQL_DATADIR=/data/mysql \ # 指定数据目录
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ # 指定套接字文件
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \ # 指定启用INNODB存储引擎,默认使用myisam
> -DWITH_EXTRA_CHARSETS=all \ # 扩展字符集
> -DDEFAULT_CHARSET=utf8mb4 \ # 指定默认字符集
> -DDEFAULT_COLLATION=utf8mb4_unicode_ci \ # 指定默认校验字符集
> -DWITH_BOOST=/root/mysql-5.7.44/boost/boost_1_59_0/ # 指定C++库依赖
[root@mysql-node1 mysql-5.7.44]# make -j2 # -j2使用两个核心来跑两个进程
[root@mysql-node1 mysql-5.7.44]# make install # 编译完后进行安装
1.1.5 部署MySQL
1.# 创建mysql的用户及用户组
[root@mysql-node1 ~]# useradd -s /sbin/nologin -M mysql
[root@mysql-node1 ~]# mkdir /data/mysql -p
[root@mysql-node1 ~]# chown mysql.mysql -R /data/mysql
2.# 生成启动脚本
[root@mysql-node1 ~]# cd /usr/local/mysql/support-files/
[root@mysql-node1 support-files]# cp mysql.server /etc/init.d/mysqld
3.# 修改环境变量
[root@mysql-node1 ~]# vim ~/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
[root@mysql-node1 ~]# source ~/.bash_profile
4.# 修改配置文件
[root@mysql-node1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql # 指定数据目录
socket=/data/mysql/mysql.sock # 指定套接字
symbolic-links=0 # 数据只能存放到数据目录中,禁止链接到数据目录
5.# 数据库初始化建立mysql基本数据
[root@mysql-node1 ~]# mysql --user mysql --initialize # 记得保存生成的初始化密码,在接下来的安全初始化需要用到
[root@mysql-node1 ~]# /etc/init.d/mysqld start # 开启MySQL服务
[root@mysql-node1 ~]# chkconfig mysqld on # 设置自启动
[root@mysql-node1 ~]# chkconfig --list # 查看自启动的服务
6.# 数据库安全初始化
[root@mysql-node1 ~]# mysql_secure_installation
测试:登录数据库
[root@mysql-node1 ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.44 Source distribution
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases; # 查看当前含有的数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+------------------