# MySQLInsall **Repository Path**: brianchou/mysql-insall ## Basic Information - **Project Name**: MySQLInsall - **Description**: MySQL安装 - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-11 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: MySQL ## README # MySQL 部署 [toc] > [!NOTE] > > 脚本install_mysql.sh适用于单实例安装,脚本install_mysql_master_salve.sh适用于主从复制部署。 ## 获取代码 ```shell git clone https://gitee.com/brianchou/mysql-insall.git ``` ## 获取安装包 **可以访问外网的话跳过此步骤** 在服务器上执行以下命令验证网络联通性。 ```shell curl https://brianhsiung.oss-cn-hangzhou.aliyuncs.com/health ``` 出现`echo ok`字样,则表示服务器可访问外网,如下图。 ![image-20250310144533806](README.assets/image-20250310144533806.png) **若服务器不能访问外网,通过以下方式获取安装包**。访问 https://downloads.mysql.com/archives/community/, 根据服务器CPU架构(`uname -m`)和GLIBC版本(`getconf GNU_LIBC_VERSION` || `ldd --version`)获取对应的安装包。 ![image-20250213161308006](README.assets/image-20250213161308006.png) 本例获取的安装包为`mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz`。 ![image-20250213161209191](README.assets/image-20250213161209191.png) ## 执行安装 1. 修改`install_mysql.sh`脚本。**根据下载的文件,如果版本不是`8.0.39`,则需要修改`MYSQL_VERSION`。如果不是`glibc2.28`,则修改`MYSQL_GLIBC`。其它根据实际需求修改** | 变量名 | 含义 | 示例 | | -------------------- | ---------------------------------------------- | ----------------- | | MYSQL_USER | 运行用户 | mysql | | MYSQL_VERSION | 版本 | 8.0.39 | | MYSQL_GLIBC | 安装包名称里的一部分 | glibc2.28 | | MYSQL_ID | 对应serverid | 取IP地址的第4部分 | | MYSQL_PORT | 运行端口 | 3306 | | MYSQL_BASE_DIR | 软链接目录 | /usr/local/mysql | | MYSQL_DATA_BASE | 数据存储目录 | /data/mysql | | MAX_CONNECTIONS | 最大连接数 | 2000 | | BINLOG_EXPIRE | binlog日志保留时间 | 604800 | | MYSQL_ROOT_PASSWORD | root账号以及superadmin对应的密码 | vHt1KTPsGkE | | MYSQL_ADMIN_PASSWORD | 高权限账号admin对应的密码 | vHt1KTPsGkE | | MYSQL_NACOS_PASSWORD | nacos_server账号及数据库nacos_server对应的密码 | vHt1KTPsGkE | 脚本中的换行符如果是`CRLF`,需要使用`vs code`或其他编辑器将其调整为如下图的`LF`。 ![image-20250310134442034](README.assets/image-20250310134442034.png) 若要增加相关`mysql`配置,修改`init_conf`方法。 2. 创建`/tmp/mysql_install`目录。 ```shell mkdir -p /tmp/mysql_install ``` 3. 上传`install_mysql.sh`和`mysql-schema.sql`至`/tmp/mysql_install`目录,如果服务器不能访问外网,还需要上传安装包到此目录。其中`mysql-schema.sql`为`nacos`数据库的表结构。 4. 执行以下命令安装。 ```shell cd /tmp/mysql_install bash install_mysql.sh ``` 执行日志如图所示。 ![image-20250313092148393](README.assets/image-20250313092148393.png) 5. 安装完成后,执行以下命令删除包 ```shell rm -rf /tmp/mysql_install ``` 6. 下图是在`aarch64`架构服务器上的执行日志。 ![image-20250305103028771](README.assets/image-20250305103028771.png) ## 异常日志 在`openEuler 22.03 LTS`上报错,报错信息如下。 ```shell /usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory ``` 如图所示。 ![image-20250313101227225](README.assets/image-20250313101227225.png) 根据提示执行`dnf install -y libaio`安装`libaio`。 ![image-20250313102142179](README.assets/image-20250313102142179.png) 依赖安装后,再次执行脚本完成安装。 ![image-20250313103730120](README.assets/image-20250313103730120.png) ## 主从复制部署 使用脚本`install_mysql_master_salve.sh` 部署半同步主从复制,根据实际情况修改`MYSQL_MASTER_IP`的值,这是主库的IP。在主库和从库上执行以下命令安装(如果服务器不能访问外网,则下载包上传到脚本同级目录) ```shell bash install_mysql_master_salve.sh ```