在Linux操作系统上安装MySQL是许多开发者和系统管理员的常见任务
本文将详细介绍在Linux系统上安装MySQL的步骤,并提供一些安装过程中可能遇到的问题及其解决方案
一、准备工作 在开始安装MySQL之前,你需要准备以下工作: 1.Linux系统:本文将以CentOS操作系统为例,但大多数步骤同样适用于其他Linux发行版,如RedHat、Oracle Linux等
2.root权限:安装MySQL需要root权限,因此你需要确保有权限执行安装操作
3.下载MySQL安装包:可以从MySQL官方网站(【https://www.mysql.com/】(https://www.mysql.com/))下载最新版本的MySQL安装包
MySQL提供多种安装方式,包括二进制安装、源码编译安装、以及通过包管理器(如yum、rpm)安装
4.确认系统架构:MySQL有32位和64位两个版本,你需要确认系统的架构,以便下载相应版本的安装包
二、安装步骤 1.卸载已安装的MySQL或MariaDB 在安装新的MySQL之前,你需要检查系统是否已经安装了MySQL或MariaDB(MariaDB是MySQL的一个分支,与MySQL兼容)
如果已安装,需要将其卸载,以避免冲突
bash
检查是否已安装MySQL或MariaDB
rpm -qa | grep mysql
rpm -qa | grep mariadb
卸载MySQL或MariaDB
rpm -e --nodeps 通常,你会下载一个tar.gz格式的二进制安装包
3. 解压安装包
将下载的tar.gz安装包解压到指定的目录 例如,解压到/usr/local/mysql目录:
bash
解压安装包
tar -zxvf mysql-5.7.xx-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
重命名解压后的目录(可选)
mv /usr/local/mysql-5.7.xx-linux-glibc2.12-x86_64 /usr/local/mysql
4. 创建用户和目录
创建一个专门用于运行MySQL服务的虚拟用户,并创建MySQL的数据目录和日志目录
bash
创建MySQL虚拟用户
useradd -s /sbin/nologin -M mysql
创建数据目录和日志目录
mkdir -p /data/mysql/mysql3306/{data,logs}
更改目录的所有者
chown -R mysql:mysql /data/mysql/mysql3306/
5. 配置MySQL
创建MySQL的配置文件,并设置相应的参数 配置文件通常位于/etc/my.cnf或/data/mysql/mysql+port/my+port.cnf
bash
创建配置文件
vim /data/mysql/mysql3306/my3306.cnf
在配置文件中添加以下内容
【mysqld】
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/mysql3306/data
socket=/data/mysql/mysql3306/mysql.sock
server_id=1
port=3306
log_error=/data/mysql/mysql3306/logs/error.log
log_bin=/data/mysql/mysql3306/logs/mysql-bin
binlog_format=row
gtid_mode=on
enforce_gtid_consistency=true
log_slave_updates=1
max_connections=1024
wait_timeout=60
sort_buffer_size=2M
max_allowed_packet=32M
join_buffer_size=2M
innodb_buffer_pool_size=128M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_log_files_in_group=2
binlog_cache_size=2M
max_binlog_cache_size=8M
max_binlog_size=512M
expire_logs_days=7
slow_query_log=on
slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
注意:以上配置参数仅用于测试环境,不可在生产环境中直接使用 生产环境的配置需要根据实际需求和硬件资源进行调整
6.初始化数据库
使用mysqld命令初始化数据库,生成系统表和数据字典
bash
初始化数据库
/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data
`--initialize-insecure`选项表示不创建root用户的密码,允许空密码登录 在生产环境中,应使用`--initialize`选项来生成一个临时密码,并在首次登录时更改密码
7. 安装依赖包
MySQL运行需要一些依赖包,如libaio 使用yum命令安装这些依赖包
bash
安装libaio依赖包
yum install libaio-devel -y
8. 启动MySQL服务
将MySQL的bin目录添加到PATH环境变量中,以便在命令行中直接运行mysql命令 然后启动MySQL服务
bash
添加MySQL的bin目录到PATH环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile
启动MySQL服务
/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/my3306.cnf &
你也可以使用systemctl命令来管理MySQL服务(如果MySQL已注册为systemd服务)
bash
启动MySQL服务
systemctl start mysqld
设置MySQL服务开机自启
systemctl enable mysqld
9. 登录MySQL并修改密码
初始化时没有给root用户指定密码,所以可以空密码连接 首次登录后,应立即修改root用户的密码
bash
登录MySQL
mysql -uroot -S /data/mysql/mysql3306/mysql.sock
修改root用户密码
mysql> ALTER USER root@localhost IDENTIFIED BY new_password;
mysql> FLUSH PRIVILEGES;
三、常见问题及解决方案
1.libaio缺少:在安装MySQL时,可能会遇到缺少libaio库的错误 可以通过yu