ubuntu14源码安装mysql5.7

本文详细介绍了如何使用命令行方式安装MySQL 5.7的过程,包括创建用户组和用户、解压源码包、配置编译参数、编译和安装MySQL服务器等关键步骤。
https://codeload.github.com/mysql/mysql-server/zip/5.7
 
# Preconfiguration setup
shell> groupadd mysql
shell> useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> cmake .
#请用如下cmake:
cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql/mysql -DSYSCONFDIR=/home/mysql/etc -DMYSQL_DATADIR=/home/mysql/data -DMYSQL_UNIX_ADDR=/home/mysql/mysqld.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/zhaozino/doc/boost
shell> make
shell> make install
# End of source-build specific instructions
# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql    # Before MySQL 5.7.6
shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
shell> bin/mysql_ssl_rsa_setup              # MySQL 5.7.6 and up
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
 
bin/mysql -uroot -ptest -hlocalhost
mysql>set password for 'root'@'localhost'=password('$newpasswd');
mysql>flush privileges;
 
 
 

                
mysql官网上下载mysql-server_5.7.21-1ubuntu14.04_amd64.deb-bundle.tar,然后进行离线安装,解压该安装包,会出现11个依赖包,按照顺序依次使用sudo dpkg -i 进行安装,中间会报错,显示缺少相应的依赖,具体如下: *******@ubuntu:/opt/mysql$ sudo dpkg -i mysql-community-client_5.7.21-1ubuntu14.04_amd64.deb Selecting previously unselected package mysql-community-client. (Reading database ... 208518 files and directories currently installed.) Preparing to unpack mysql-community-client_5.7.21-1ubuntu14.04_amd64.deb ... Unpacking mysql-community-client (5.7.21-1ubuntu14.04) ... dpkg: dependency problems prevent configuration of mysql-community-client: mysql-community-client depends on libaio1 (>= 0.3.93); however: Package libaio1 is not installed. dpkg: error processing package mysql-community-client (--install): dependency problems - leaving unconfigured Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Errors were encountered while processing: mysql-community-client 和 ********@ubuntu:/opt/mysql$ sudo dpkg -i mysql-community-server_5.7.21-1ubuntu14.04_amd64.deb Selecting previously unselected package mysql-community-server. (Reading database ... 208598 files and directories currently installed.) Preparing to unpack mysql-community-server_5.7.21-1ubuntu14.04_amd64.deb ... Unpacking mysql-community-server (5.7.21-1ubuntu14.04) ... dpkg: dependency problems prevent configuration of mysql-community-server: mysql-community-server depends on libmecab2 (>= 0.996-1.1); however: Package libmecab2 is not installed. dpkg: error processing package mysql-community-server (--install): dependency problems - leaving unconfigured Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Processing triggers for ureadahead (0.100.0-16) ... ureadahead will be reprofiled on next reboot Errors were encountered while processing: mysql-community-server 附上依赖包安装顺序: 1.mysql-common_5.7.21-1ubuntu14.04_amd64.deb 2.libmysqlclient20_5.7.21-1ubuntu14.04_amd64.deb 3.libmysqlclient-dev_5.7.21-1ubuntu14.04_amd64.deb 4.libmysqld-dev_5.7.21-1ubuntu14.04_amd64.deb
<think>我们参考了多个引用中关于在Ubuntu系统上源码安装MySQL的方法,特别是引用[3]和[4]提供了具体的步骤和配置选项。注意,用户需要安装的是MySQL 5.7.30,而引用中提到的版本是5.7.24或5.7.27,但安装步骤大体相同,只需替换为5.7.30的源码包即可。 以下是详细步骤(假设在Ubuntu 16.04或更高版本上操作,因为MySQL 5.7需要较新的编译环境): 1. **安装依赖包**: 在编译安装之前,需要安装一些必要的开发工具和库。打开终端,执行以下命令: ```bash sudo apt update sudo apt install -y cmake build-essential libncurses5-dev libssl-dev libboost-all-dev ``` 2. **下载MySQL源码**: 访问MySQL官方网站下载MySQL 5.7.30的源码包。如果找不到5.7.30的下载链接,可以使用以下命令(注意替换下载链接,确保版本正确): ```bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30.tar.gz ``` 如果链接失效,请到[MySQL下载页面](https://dev.mysql.com/downloads/mysql/5.7.html)选择“Source Code”并找到5.7.30的版本。 3. **解压源码并进入目录**: ```bash tar -zxvf mysql-5.7.30.tar.gz cd mysql-5.7.30 ``` 4. **配置编译选项**: 使用`cmake`配置编译选项。这里参考引用[4]的配置,并做适当调整: ```bash mkdir build && cd build 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 \ -DWITH_BOOST=../boost # 注意:MySQL 5.7需要boost库,如果源码包中不含boost,则需要单独下载并指定路径 ``` 注意:如果MySQL源码包中已经包含了boost(比如MySQL 5.7.30源码包中可能自带boost),则可以使用`-DDOWNLOAD_BOOST=1`选项让cmake自动下载,或者将boost源码解压到mysql源码目录下的boost目录(如`mysql-5.7.30/boost`)然后使用`-DWITH_BOOST=../boost`。 如果配置过程中出现错误,需要根据错误信息安装缺失的依赖,然后删除当前build目录下的`CMakeCache.txt`文件,重新运行cmake命令。 5. **编译并安装**: ```bash make -j$(nproc) # 使用多核编译,加快速度 sudo make install ``` 6. **初始化数据库**: 安装完成后,我们需要初始化MySQL系统表。首先,创建mysql用户和组(如果不存在): ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 然后,切换到安装目录,并初始化数据库(注意:确保目录权限正确): ```bash cd /usr/local/mysql sudo chown -R mysql:mysql . sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 初始化完成后,会生成一个临时root密码,务必记下来(在终端输出中查找)。 7. **配置MySQL服务**: 复制服务启动脚本(在源码目录的`support-files`文件夹中): ```bash sudo cp support-files/mysql.server /etc/init.d/mysql sudo chmod +x /etc/init.d/mysql ``` 可以使用`systemd`管理服务(如果系统支持): ```bash sudo systemctl enable mysql sudo systemctl start mysql ``` 或者使用传统的服务管理方式: ```bash sudo update-rc.d mysql defaults sudo service mysql start ``` 8. **设置环境变量**: 为了方便使用MySQL客户端,可以将MySQL的bin目录添加到PATH环境变量中: ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc source ~/.bashrc ``` 9. **修改root密码**: 使用初始化时生成的临时密码登录,并修改root密码: ```bash mysql -u root -p ``` 输入临时密码后,在MySQL提示符下执行: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password'; FLUSH PRIVILEGES; ``` 10. **安全配置(可选)**: 运行安全配置脚本: ```bash sudo bin/mysql_secure_installation ``` 注意事项: - 整个过程需要较长时间,尤其是编译阶段。 - 确保系统有足够的内存(建议不少于2GB),否则编译可能失败。 - 如果在初始化或启动过程中遇到问题,检查日志文件(通常在数据目录下,如`/usr/local/mysql/data/主机名.err`)。 以上步骤基于引用[3][4][5]整理,并根据5.7.30版本进行了调整[^3][^4][^5]。 §§相关问题§§ 1.Ubuntu源码安装MySQL 5.7需要满足哪些系统要求? 2. 如何解决编译MySQL时出现的依赖问题? 3. 如何配置MySQL的远程访问? </think>### 在Ubuntu系统上源码安装MySQL 5.7.30的详细步骤 #### 一、准备工作 1. **安装依赖** 执行以下命令安装编译工具和库: ```bash sudo apt update sudo apt install -y cmake build-essential libncurses5-dev libssl-dev libboost-all-dev wget ``` 2. **创建mysql用户和目录** ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo mkdir -p /usr/local/mysql/{data,log} sudo chown -R mysql:mysql /usr/local/mysql ``` #### 二、下载并解压源码 ```bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30.tar.gz tar -zxvf mysql-5.7.30.tar.gz cd mysql-5.7.30 ``` #### 三、配置编译选项 ```bash mkdir build && cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_BOOST=../boost \ -DDOWNLOAD_BOOST=1 # 自动下载Boost库 ``` > 关键参数说明: > - `-DWITH_BOOST`:MySQL 5.7编译必需Boost库 > - `-DDOWNLOAD_BOOST=1`:自动下载缺失的Boost库[^3][^4] #### 四、编译与安装 ```bash make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install ``` #### 五、初始化数据库 ```bash cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data ``` > **注意**:初始化后会生成临时root密码,在终端输出中查找 `A temporary password` 行[^1] #### 六、配置启动文件 1. **复制服务脚本** ```bash sudo cp support-files/mysql.server /etc/init.d/mysql sudo chmod +x /etc/init.d/mysql ``` 2. **配置systemd服务(Ubuntu 16.04+)** 创建 `/etc/systemd/system/mysql.service`: ```ini [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld Restart=on-failure [Install] WantedBy=multi-user.target ``` 启动服务: ```bash sudo systemctl enable mysql sudo systemctl start mysql ``` #### 七、设置环境变量 ```bash echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc source ~/.bashrc ``` #### 八、修改root密码 ```bash mysql -u root -p # 输入初始化时的临时密码 ``` ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; ``` #### 九、配置远程访问(可选) ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` ### 常见问题解决 1. **编译错误**:确认所有依赖已安装,删除`build/`目录重新配置 2. **启动失败**:检查 `/usr/local/mysql/data/主机名.err` 日志文件 3. **连接问题**:确认防火墙开放3306端口:`sudo ufw allow 3306` > 源码安装耗时较长(约30-60分钟),建议在性能较好的机器上操作[^2][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值