赞
踩
要在 Ubuntu 上使用调试功能安装 MySQL 8.0 的源码,可以按照以下详细步骤进行操作:
首先,确保你的 Ubuntu 系统是最新的。运行以下命令更新系统软件包:
- sudo apt update
- sudo apt upgrade
访问 MySQL 官方网站(MySQL :: Download MySQL Community Server)并下载 MySQL 8.0 的源码包(mysql-boost-8.0.31.tar.gz)。
(1)更换镜像源
参考:Linux Ubuntu 修改 /etc/apt/sources.list (镜像源)文件(非常实用)-CSDN博客
(2)安装 gcc
sudo apt install gcc-11
(3)安装构建 MySQL 所需的编译依赖。运行以下命令安装所需的软件包:
sudo apt install build-essential cmake libncurses5-dev libssl-dev libboost-all-dev gdb
注意,我们添加了 gdb 软件包,它是用于调试的工具。
将下载的源码包解压到一个目录中。假设你将其解压到 /usr/local 目录下。
sudo tar xvf mysql-boost-8.0.31.tar.gz
- groupadd mysql
-
- //第一个mysql是指用户名,第二个mysql是指组名
- //参数说明:-M 不创建家目录 -s 指定 -r 创建系统账户
- useradd -r -g mysql -M -s /bin/false mysql
-r
选项表示创建一个系统用户(系统用户通常用于运行服务或应用程序)。-g mysql
选项指定将用户添加到名为mysql
的用户组中。-M
选项表示不要创建用户的主目录。-s /bin/false
选项将用户的登录 shell 设置为/bin/false
,这将禁止用户通过登录 shell 登录系统。该命令的目的是创建一个名为mysql
的系统用户,并将其添加到mysql
用户组中。该用户将没有登录权限,因为其登录 shell 被设置为/bin/false
。这样的用户通常用于运行MySQL服务,以提供更安全的环境。
进入解压后的 MySQL 源码目录,并创建一个用于构建的目录。
- cd mysql-8.0.31
- sudo mkdir build
- cd build
运行 cmake 命令来配置构建选项。你可以根据需要自定义选项,下面是一个示例:
sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DWITH_DEBUG=1
注意,我们添加了 -DWITH_DEBUG=1 选项来启用调试功能。(MySQL 5.7需要使用特定版本的Boost库。在MySQL 5.7的源码中,会提供一个boost文件夹,其中包含了所需的Boost库版本。您可以在编译安装MySQL时,通过指定Boost库的路径来解决依赖关系。)
上述命令是用于配置和构建 MySQL 数据库的 CMake 命令。下面是每个选项的解释:
如果需要修改字符集,可在执行 cmake 命令时,加入下列两个参数:
- -DDEFAULT_CHARSET=utf8
- -DDEFAULT_COLLATION=utf8_general_ci
这些选项允许你根据需要自定义 MySQL 的构建和安装过程。根据你的需求,可以调整这些选项的值或添加其他选项来满足特定的配置需求。
说明:
运行 make 命令编译 MySQL,并使用 make install 命令安装到指定目录。
- sudo make -j4
- sudo make install
- vi /etc/my.cnf
-
- //my.cnf文件内容如下
-
- [client]
- socket=/usr/local/mysql/data/mysql.sock
-
- [mysqld]
- datadir=/usr/local/mysql/data
- socket=/usr/local/mysql/data/mysql.sock
-
- #Disabling symbolic-links is recommended to prevent assorted security risks
- symbolic-links=0
- log-error=/usr/local/mysql/data/mysqld.log
- pid-file=/usr/local/mysql/data/mysqld.pid
- server-id=1
说明:my.cnf文件中的 /usr/local/mysql 为mysql安装路径,根据自己情况进行更改,该mysql安装目录为:/usr/local/mysql;
- # 进入安装目录
- cd /usr/local/mysql
-
- # 初始化
- bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --port=3306
说明:初始化文件 my.cnf 可以放在不同的文件夹下(一台机器上装多个 mysql 时,可以在不同的文件夹下创建 my.cnf),但初始化命令中使用到的 my.cnf 路径要与其保持一致;
初始化完成后,找到 mysql 安装目录下的 data 文件夹,初始化密码在 mysqld.log 日志中,自行找到即可,然后用初始密码进行登陆;初始密码实例如下:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --port=3306 &
- # 执行下述命令并使用初始密码进入
- /usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -p -P3306
-
- ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。