在Linux系统上创建MySQL服务器实例,通常是指安装MySQL服务端、初始化独立的数据目录并通过配置文件启动一个可对外提供服务的数据库进程。下面以MySQL 8.0社区版为例,介绍从安装到基础配置的完整过程。

一、安装MySQL服务端
以Ubuntu为例,可以通过官方APT源安装MySQL服务器软件包,安装完成后会自带mysqld服务端程序。
# 更新软件源并安装MySQL服务器 sudo apt-get update sudo apt-get install -y mysql-server # 查看mysqld版本 mysqld --version
二、初始化服务器实例数据目录
如果是手动部署或需要新建一个独立实例,应先初始化数据目录。以下命令会生成系统表并设置临时root密码。
# 创建数据目录并授权 sudo mkdir -p /data/mysql_instance1 sudo chown -R mysql:mysql /data/mysql_instance1 # 初始化实例,使用--initialize会生成临时密码 mysqld --initialize --user=mysql --datadir=/data/mysql_instance1
初始化参数说明
--user:指定运行mysqld的系统用户--datadir:实例的数据文件存放路径--initialize:安全初始化,生成随机root密码
三、编写基础配置文件
MySQL服务器实例依赖配置文件读取启动参数。常见配置名为my.cnf,放在/etc或实例目录下。以下为单实例基础配置示例。
[mysqld] # 服务端口 port=3306 # 绑定地址,0.0.0.0允许远程连接 bind-address=0.0.0.0 # 数据目录 datadir=/data/mysql_instance1 # socket文件 socket=/data/mysql_instance1/mysql.sock # 字符集设置 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci # 日志文件 log-error=/data/mysql_instance1/error.log
关键配置项解释
| 配置项 | 作用 |
|---|---|
| port | MySQL监听的TCP端口 |
| bind-address | 控制允许连接的网卡地址 |
| character-set-server | 默认字符集,推荐utf8mb4 |
四、启动服务器实例
在系统使用systemd时,可以创建服务单元文件来管理MySQL实例的启动与开机自启。
# 创建systemd服务文件 sudo tee /etc/systemd/system/mysql-instance1.service <<'EOF' [Unit] Description=MySQL Instance1 Server After=network.target [Service] User=mysql ExecStart=/usr/sbin/mysqld --defaults-file=/data/mysql_instance1/my.cnf Restart=on-failure [Install] WantedBy=multi-user.target EOF # 重载并启动 sudo systemctl daemon-reload sudo systemctl start mysql-instance1 sudo systemctl enable mysql-instance1
五、验证实例状态
启动后可用客户端连接,检查服务器实例是否正常工作。首次登录需使用初始化时的临时密码并修改。
# 使用socket连接实例 mysql -u root -p -S /data/mysql_instance1/mysql.sock # 查看服务器参数 SELECT VERSION(); SHOW VARIABLES LIKE 'character_set_server';
注意:若配置了bind-address为127.0.0.1,则只能本机连接;需要远程访问时应改为0.0.0.0并在防火墙放行对应port。
六、常见问题
1. 数据目录权限错误
若启动时报权限拒绝,请确认datadir所属用户为mysql,且目录权限不大于750。
2. 端口被占用
使用ss -lntp | grep 3306查看端口占用,修改my.cnf中的port值可避免冲突。
通过以上步骤,就可以完成一个MySQL服务器实例的创建与基础配置,后续可根据业务需要继续调整缓存、连接数等高级参数。
MySQLServer_MySQL数据库配置修改时间:2026-07-30 09:03:20