【转】Ubuntu编译安装mysql源码

详细步骤:在Ubuntu上安装MySQL数据库
本文提供了一个详细的指南,指导用户如何在Ubuntu操作系统上安装MySQL数据库,包括下载最新源码、更新系统工具、创建用户组、解压源码、编译和安装MySQL、配置my.cnf文件、复制服务控制文件、设置开机启动、测试运行以及最终验证MySQL是否成功运行。

主要参考了下面两篇文章

http://forum.ubuntu.org.cn/viewtopic.php?t=330121

http://www.linuxidc.com/Linux/2011-09/42290.htm

 

 

1、去mysql官网下载最新的源码,下载页下拉菜单选Source Code->Generic Linux ????.tar.gz

2、更新系统必备的工具

 

[plain]  view plain copy
 
  1. sudo apt-get install build-essential  
  2. sudo apt-get install libncurses5-dev  
  3. sudo apt-get install sysv-rc-conf  
  4. sudo apt-get install cmake  

3、解压mysql源码包

 

 

[plain]  view plain copy
 
  1. tar xvzf mysql-????.tar.gz  

 

4、创建mysql用户组

 

[plain]  view plain copy
 
  1. sudo groupadd mysql  
  2. sudo useradd -r -g mysql mysql  


5、进入mysql解压后的目录,使用cmake指令编译mysql

 

 

[plain]  view plain copy
 
  1. cmake . \  
  2. -DCMAKE_INSTALL_PREFIX=/usr/mysql \  
  3. -DMYSQL_DATADIR=/usr/mysql/data \  
  4. -DDEFAULT_CHARSET=utf8 \  
  5. -DDEFAULT_COLLATION=utf8_general_ci \  
  6. -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \  
  7. -DWITH_DEBUG=0 \  
  8. -DWITH_INNOBASE_STORAGE_ENGINE=1  


6、编译安装,使用root比较简单,权限问题很严重

 

 

[plain]  view plain copy
 
  1. sudo make  
  2. sudo make install  


7、进入安装厚的目录执行

 

 

[plain]  view plain copy
 
  1. sudo chown -R mysql .  
  2. chgrp -R mysql .  
  3. sudo bin/scripts/mysql_install_db \  
  4. --user=mysql \  
  5. --basedir=/usr/mysql \  
  6. --datadir=/usr/mysql/data \  
  7. --no-defaults  


必须有一个–no-defaults选项,如果没有该选项,则程序会自动载入默认的配置文件

 

8、配置my.cnf

 

[plain]  view plain copy
 
  1. sudo cp /usr/mysql/support-files/my-medium.cnf /etc/mysql/my.cnf  

通常我们是通过脚本传入适当的参数启动mysqld。因此在/etc/mysql/my.cnf中加入如下的内容:

 

引用:
[mysqld]
basedir=/usr/mysql
datadir=/usr/mysql/data
user=mysql

pid-file = /usr/mysql/mysql.pid

 

 

9、复制服务控制文件

 

[plain]  view plain copy
 
  1. sudo cp /usr/mysql/support-files/mysql.server /etc/init.d/mysql  


10、建立mysql.pid

 

 

[plain]  view plain copy
 
  1. cd /usr/mysql/  
  2. touch mysql.pid  


11、测试mysql运行

 

 

[plain]  view plain copy
 
  1. sudo service mysql start  

或者到目录中运行

 

 

[plain]  view plain copy
 
  1. sudo /etc/init.d/mysql start  

 

 

报错的处理什么pid的错误,应该是没有权限造成的,具体错误可以去/usr/mysql/data/xxxx.err中查看

查看方法

[plain]  view plain copy
 
  1. tail xxx.err  

一般都是permision denied,自己处理一下吧

 


12、设置开机运行

 

[plain]  view plain copy
 
  1. sudo sysv-rc-conf  

该工具采用的是图形界面,很直观在此就不介绍如何使用了,我们需要做的是找到【mysql】一栏,选定【3】【4】【5】这三列,这样就完成了开机自动启动MySQL daemon了。

 

 

重启后service mysql status

mysql is running

成功了

转载于:https://www.cnblogs.com/qf19910623/p/4930366.html

<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、付费专栏及课程。

余额充值