mysql数据库的配置
安装mysql
使用官方仓库安装
Centos:
首先导入 MySQL 官方的 Yum 源配置文件:
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
默认启用的是 MySQL 8.0,如果需要安装 5.7 版本,需修改配置文件:
sudo vi /etc/yum.repos.d/mysql-community.repo
将 [mysql57-community]
部分的 enabled=0
改为 enabled=1
并将 [mysql80-community]
的 enabled=1
改为 enabled=0
Ubuntu:
sudo apt update
sudo apt install -y mysql-server
默认安装的依然是 mysql 8.0
版本
要安装 5.7
版本则需要添加 MySQL 官方源
wget -qO - https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | sudo apt-key add -
echo "deb http://repo.mysql.com/apt/ubuntu/ $(lsb_release -cs) mysql-5.7" | sudo tee /etc/apt/sources.list.d/mysql.list
sudo apt update
然后安装时指定 5.7
版本
sudo apt install -y mysql-server-5.7
安装完成后,启动服务并添加开机启动
sudo yum install -y mysql-community-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
MySQL 8.0 安装后会生成一个临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
Mysql 5.7 则默认为空密码
编译安装
安装准备
[postsbox post_id=7]
创建 MySQL 用户和组
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
下载 mysql 5.7
版本源码
wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.40.tar.gz
下载 mysql 8.0
版本源码
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.33.tar.gz
解压并进入到解压后目录
tar -zxf 下载的mysql文件名
cd 解压后的目录
然后进行编译安装
编译参数 mysql-5.7
:
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DMYSQL_TCP_PORT=3306
mysql-8.0
版本需要添加一下编译参数
-DWITH_BOOST=boost \
-DDOWNLOAD_BOOST=1
编译并安装,如果多线程编译出错把 -j
参数去除
make -j$(nproc) # 使用多线程编译
sudo make install
配置环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee -a /etc/profile
source /etc/profile
初始化数据库
sudo mkdir -p /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo chmod 755 /var/lib/mysql
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
注意:初始化完成后,记录临时生成的 root 密码(输出中包含 A temporary password is generated for root@localhost:
)
配置为系统服务后即可启动
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo systemctl daemon-reload
sudo systemctl enable mysql
sudo systemctl start mysql
编译参数说明
参数名 | 说明 |
---|---|
-DCMAKE_INSTALL_PREFIX |
指定 MySQL 安装目录 |
-DMYSQL_DATADIR |
指定数据文件存放目录 |
-DSYSCONFDIR |
指定配置文件目录 |
-DWITH_MYISAM_STORAGE_ENGINE |
启用 MyISAM 存储引擎 |
-DWITH_INNOBASE_STORAGE_ENGINE |
启用 InnoDB 存储引擎(默认事务引擎) |
-DWITH_ARCHIVE_STORAGE_ENGINE |
启用 Archive 存储引擎(适合日志记录) |
-DWITH_BLACKHOLE_STORAGE_ENGINE |
启用 Blackhole 存储引擎(丢弃所有写入数据) |
-DWITH_PERFSCHEMA_STORAGE_ENGINE |
启用 Performance Schema(性能监控) |
-DMYSQL_UNIX_ADDR |
指定 Unix 套接字文件路径(如 /var/lib/mysql/mysql.sock ) |
-DENABLED_LOCAL_INFILE |
启用 LOAD DATA LOCAL INFILE 功能(导入本地文件) |
-DWITH_PARTITION_STORAGE_ENGINE |
启用分区表支持 |
-DWITH_SSL |
指定 SSL 库位置(如 system 使用系统已安装的库) |
-DWITH_ZLIB |
指定 Zlib 库位置(如 system 使用系统已安装的库) |
-DWITH_LIBWRAP |
启用 TCP Wrappers 安全功能(0 为禁用) |
-DMYSQL_TCP_PORT |
指定 MySQL 监听端口(默认 3306) |
-DWITH_BOOST |
指定 Boost 库路径(MySQL 8.0 强制依赖) |
-DDOWNLOAD_BOOST |
自动下载 Boost 库(值为 1 时自动下载) |
-DDEFAULT_ENCRYPTION_ALGORITHM |
指定默认加密算法(如 aes_256_cbc ) |
-DENABLED_PROFILING |
启用性能分析(调试用) |
-DDEFAULT_AUTHENTICATION_PLUGIN |
指定默认认证插件(如 mysql_native_password 兼容旧客户端) |
-DWITH_DEBUG |
启用调试模式(编译时间更长,生产环境建议禁用) |
-DWITH_EMBEDDED_SERVER |
编译嵌入式服务器(用于应用程序内嵌 MySQL) |
-DEXTRA_CHARSETS |
指定额外字符集支持(如 all 包含所有字符集) |
-DDEFAULT_CHARSET |
指定默认字符集(MySQL 8.0 默认 utf8mb4 ) |
-DDEFAULT_COLLATION |
指定默认排序规则(如 utf8mb4_unicode_ci ) |