Ubuntu采用源码安装mysql出现没有PID文件问题

在尝试使用源码安装MySQL时遇到PID文件不存在的错误,通过删除配置文件等操作解决了问题,并分析了可能的原因。

最近学习mysql,想深入了解mysql的各种性能优化方面的知识,以便进军DBA,但是在用源码安装mysql的时候一直出错,跟着网上的方法一步一步还是有问题

Starting MySQL

. * The server quit without updating PID file (/usr/local/mysql/data/dean-G41MT-S2.pid).

但是我的/data下确实没有pid的文件 
后来删除想重新安装一次就删文件的时候  删了一个之前配置的/etc/my.cnf文件  删了之后尝试结果没有问题了  能够正常启动了。 不晓得是什么原因 ```

之前是为什么还不知道,现在刚刚重启了一下计算机,结果有不能启动 出现的是相同的问题、


转载于:https://my.oschina.net/deanjoson/blog/57092

<think> 我们根据引用资料中的信息,整理出在Ubuntu系统上编译安装MySQL的详细步骤。 注意:由于引用资料中包含了多个版本的安装方法(如5.7.35, 5.0.45等),这里将以较新的MySQL 5.7.35为例(引用[4]),并结合其他引用的相关内容。 编译安装MySQL主要步骤包括:安装依赖、下载源码、配置编译选项、编译安装、初始化数据库、配置环境变量启动服务等。 步骤1:安装依赖 引用[2]提供了安装依赖的命令: ``` sudo apt update sudo apt install build-essential cmake libncurses5-dev libncursesw5-dev zlib1g-dev ``` 步骤2:创建MySQL用户组 引用[3]中提到了创建用户组: ``` groupadd mysql useradd -M -g mysql -s /sbin/nologin mysql ``` 步骤3:下载MySQL源码并解压 这里需要去MySQL官网下载指定版本的源码包(如5.7.35),并解压到指定目录。 假设我们下载到/usr/local/src目录: ``` cd /usr/local/src wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35.tar.gz tar -zxvf mysql-5.7.35.tar.gz cd mysql-5.7.35 ``` 步骤4:配置编译选项 使用cmake进行配置。参考引用[5]的配置选项,但注意版本不同可能选项有差异。 这里我们创建一个编译目录并进入: ``` mkdir build cd build ``` 然后运行cmake,指定安装目录其他选项: ``` 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_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci ``` 注意:以上选项可以根据需要调整。 步骤5:编译安装 ``` make -j $(nproc) # 使用所有CPU核心进行编译,加快速度 sudo make install ``` 步骤6:设置目录权限 将安装目录的所有权赋予mysql用户,如引用[3]: ``` chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /usr/local/mysql/data # 如果data目录存在 ``` 步骤7:创建配置文件 在/etc/my.cnf创建配置文件,引用[3]提供了示例: ``` vim /etc/my.cnf ``` 内容如下: ``` [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/var/log/mysqld/mysqld.log pid-file=/var/run/mysqld/mysql.pid ``` 步骤8:创建日志运行目录并设置权限 引用[3]: ``` mkdir -p /var/log/mysqld /var/run/mysqld chown -R mysql:mysql /var/log/mysqld chown -R mysql:mysql /var/run/mysqld touch /var/log/mysqld/mysqld.log ``` 步骤9:初始化数据库 使用mysqld初始化,引用[4]: ``` sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 注意:初始化会生成一个临时密码,需要记录(在日志中可以看到)。 步骤10:配置环境变量 引用[3]中配置环境变量的方法: ``` vim /etc/profile ``` 添加: ``` export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin ``` 然后使配置生效: ``` source /etc/profile ``` 步骤11:启动MySQL 可以使用以下命令启动(引用[4]): ``` sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & ``` 或者使用mysqld直接启动(确保配置文件正确): ``` sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql & ``` 步骤12:设置开机启动(可选) 可以创建systemd服务文件,以便使用systemctl管理。 步骤13:修改root密码 使用初始化时生成的临时密码登录,并修改密码: ``` mysql -u root -p ``` 输入临时密码后,执行: ``` ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; ``` 注意:以上步骤是一个通用流程,具体操作可能会因系统环境MySQL版本而略有不同。在操作过程中请仔细阅读官方文档错误提示。 为了安全,建议在安装完成后运行安全脚本(如果存在): ``` mysql_secure_installation ``` 根据引用资料,我们整理了上述步骤。请务必注意每一步的权限设置路径配置。 §§相关问题§§ 1. 在编译安装MySQL时,如何选择合适的编译选项? 2. 初始化MySQL数据库时忘记记录临时密码怎么办? 3. 如何将编译安装MySQL添加到系统服务(systemd)中? </think> 以下是基于引用资料整理的Ubuntu系统上编译安装MySQL的详细步骤(以MySQL 5.7为例): ### 步骤1:安装编译依赖 ```bash sudo apt update sudo apt install build-essential cmake libncurses5-dev libncursesw5-dev zlib1g-dev ``` > 安装编译工具链依赖库[^2] ### 步骤2:创建MySQL用户组 ```bash sudo groupadd mysql sudo useradd -M -g mysql -s /sbin/nologin mysql ``` ### 步骤3:下载MySQL源码 访问 [MySQL官方下载页](https://dev.mysql.com/downloads/mysql/5.7.html) 获取源码: ```bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.45.tar.gz tar -zxvf mysql-5.7.45.tar.gz cd mysql-5.7.45 ``` ### 步骤4:配置编译选项 ```bash mkdir build && cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EXTRA_CHARSETS=all ``` > 关键配置说明: > `-DCMAKE_INSTALL_PREFIX` 指定安装目录 > `-DMYSQL_DATADIR` 设置数据存储位置[^5] ### 步骤5:编译安装 ```bash make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install ``` ### 步骤6:配置文件目录 1. 创建配置文件: ```bash sudo vim /etc/my.cnf ``` ```ini [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/var/log/mysqld/mysqld.log pid-file=/var/run/mysqld/mysql.pid ``` 2. 创建日志运行目录: ```bash sudo mkdir -p /var/log/mysqld /var/run/mysqld sudo chown -R mysql:mysql /var/log/mysqld /var/run/mysqld sudo touch /var/log/mysqld/mysqld.log ``` ### 步骤7:设置权限 ```bash sudo chown -R mysql:mysql /usr/local/mysql sudo chown -R mysql:mysql /usr/local/mysql/data ``` ### 步骤8:初始化数据库 ```bash 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: ********`)[^4] ### 步骤9:设置环境变量 ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' | sudo tee -a /etc/profile source /etc/profile ``` ### 步骤10:启动MySQL ```bash sudo bin/mysqld_safe --user=mysql & ``` ### 步骤11:修改root密码 ```bash mysql -u root -p # 输入初始临时密码 ``` ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; ``` ### 验证安装 ```bash mysqladmin version -u root -p ``` 应显示类似: `mysqladmin Ver 8.0 Distrib 5.7.45, for Linux on x86_64` --- ### 常见问题解决 1. **初始化失败**:检查 `/var/log/mysqld/mysqld.log` 中的错误信息 2. **依赖缺失**:通过 `sudo apt install libssl-dev pkg-config` 补充依赖 3. **端口冲突**:修改 `/etc/my.cnf` 中的 `port=3307` > 注意:编译过程可能需1-2小时,建议使用screen/tmux保持会话[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值