而在数据库领域,MySQL作为一款开源的关系型数据库管理系统,凭借其高性能、易用性和丰富的社区资源,成为了众多项目的首选
本文将详细介绍如何在Ubuntu18上通过源码安装MySQL,以便充分利用其灵活性和可定制性
一、准备工作 在进行源码安装之前,我们需要做一些准备工作
这些工作包括更新系统软件包列表、安装必要的依赖工具以及下载MySQL的源码包
1.更新系统软件包列表 首先,我们需要确保系统的软件包列表是最新的
打开终端,输入以下命令: bash sudo apt-get update 2.安装必要的依赖工具 在安装MySQL之前,我们需要安装一些必要的编译工具和库文件
这些工具和库文件将帮助我们在编译MySQL源码时解决依赖问题
输入以下命令来安装这些依赖: bash sudo apt-get install build-essential cmake libncurses5-dev libssl-dev bison 其中,`build-essential`包含了编译C/C++程序所需的编译器、链接器和构建工具;`cmake`是一个跨平台的自动化构建系统,用于配置和生成构建文件;`libncurses5-dev`是ncurses库的开发版本,用于提供字符界面功能;`libssl-dev`是OpenSSL库的开发版本,用于提供加密功能;`bison`是一个语法分析器生成器,用于解析MySQL源码中的语法规则
3.下载MySQL源码包 接下来,我们需要从MySQL官方网站下载源码包
访问【MySQL下载页面】(https://downloads.mysql.com/archives/community/),选择适合Ubuntu18的版本(如MySQL5.7或8.0),并下载对应的源码压缩包
例如,我们可以下载`mysql-5.7.34.tar.gz`(版本号可能有所不同,请根据实际情况选择)
将下载的源码包上传到Ubuntu服务器后,使用以下命令解压: bash tar -zxvf mysql-5.7.34.tar.gz cd mysql-5.7.34 二、编译与安装 在准备好源码包和依赖工具后,我们可以开始编译和安装MySQL了
1.创建编译目录 为了避免在源码目录中生成大量编译文件,我们通常会创建一个单独的编译目录
使用以下命令创建并进入编译目录: bash mkdir build cd build 2.运行CMake配置 在编译目录中,运行CMake来配置MySQL的编译选项
我们需要指定MySQL的安装目录、数据目录以及其他相关选项
以下是一个示例命令: bash cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DWITH_SSL=system -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci 其中,`-DCMAKE_INSTALL_PREFIX`指定了MySQL的安装目录;`-DMYSQL_DATADIR`指定了MySQL数据文件的存放目录;`-DWITH_SSL=system`表示使用系统提供的SSL库;`-DDEFAULT_CHARSET`和`-DDEFAULT_COLLATION`分别指定了默认的字符集和排序规则
3.编译MySQL 配置完成后,我们可以开始编译MySQL了
使用以下命令进行编译: bash make 编译过程可能需要一些时间,具体取决于服务器的性能和源码包的大小
4.安装MySQL 编译完成后,使用以下命令安装MySQL: bash sudo make install 三、配置与启动 安装完成后,我们需要进行一些配置工作,以便能够正常启动和使用MySQL
1.创建用户和组 为了安全起见,我们需要为MySQL创建一个专门的用户和组
使用以下命令创建用户和组: bash sudo groupadd mysql sudo useradd -r -g mysql mysql 2.设置目录权限 接下来,我们需要设置MySQL数据目录和安装目录的权限,以确保MySQL用户能够访问这些目录
使用以下命令设置权限: bash sudo chown -R mysql:mysql /usr/local/mysql sudo chown -R mysql:mysql /data/mysql 3.初始化数据库 在启动MySQL服务之前,我们需要初始化数据库
使用以下命令进行初始化: bash sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql 初始化过程中,MySQL会生成一些必要的系统表和文件
4.配置MySQL服务 为了方便管理MySQL服务,我们可以将其配置为系统服务
首先,复制MySQL的启动脚本到系统服务目录中: bash sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 然后,使用`update-rc.d`命令将MySQL添加到系统启动项中: bash sudo update-rc.d mysql defaults 或者,对于使用systemd的系统,可以创建一个systemd服务文件: bash sudo nano /etc/systemd/system/mysql.service 在文件中添加以下内容: ini 【Unit】 Description=MySQL Server After=network.target 【Service】 User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown Restart=on-failure 【Install】 WantedBy=multi-user.target 保存并退出后,使用以下命令重新加载systemd配置并启动MySQL服务: bash sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql 5.配置MySQL 在MySQL启动后,我们需要进行一些基本的配置
首先,编辑MySQL的配置文件`/etc/my.cnf`,根据需要调整各项参数
例如,我们可以设置字符集、排序规则、端口号、数据目录等
然后,我们需要为root用户设置密码
由于MySQL5.7及以后版本默认使用了`auth_socket`插件进行身份验证,因此我们需要将root用户的插件更改为`mysql_native_password`并设置密码
使用以下命令登录MySQL并更改root用户密码: bash sudo mysql_sec