一、环境准备
在开始编译安装MySQL之前,需要先准备好一些依赖环境:
1、GCC编译器和make命令(如果已经安装则可以跳过这一步)
sudo apt-get update
sudo apt-get install build-essential
2、cmake工具
sudo apt-get install cmake
3、ncurses库
sudo apt-get install libncurses5-dev libncursesw5-dev
二、下载MySQL源码
从MySQL官网上下载所需版本的源码,这里以最新版本为例:
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26.tar.gz
三、解压源码并进入目录
tar -zxvf mysql-8.0.26.tar.gz
cd mysql-8.0.26
四、开始编译安装
1. 创建一个新的用户组和用户
在编译之前,我们需要创建一个新的MySQL用户组和MySQL用户,并将编译后的MySQL安装在该用户下,这么做可以增强安全性。
创建MySQL用户组
sudo groupadd mysql
创建MySQL用户
sudo useradd -r -g mysql -s /bin/false mysql
2. 配置编译选项
进入MySQL源代码目录中的cmake配置目录,并执行以下命令配置编译选项:
cd 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 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=/usr/local
这里解释下每个选项的含义:
-DCMAKE_INSTALL_PREFIX:指定MySQL安装路径
-DMYSQL_DATADIR:指定MySQL数据存放路径
-DSYSCONFDIR:指定MySQL配置文件存放路径
-DWITH_MYISAM_STORAGE_ENGINE:支持MyISAM存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE:支持InnoDB存储引擎
-DWITH_MEMORY_STORAGE_ENGINE:支持Memory存储引擎
-DWITH_READLINE:使用readline库,提高命令行交互的效率
-DENABLED_LOCAL_INFILE:支持从本地读取数据
-DDEFAULT_CHARSET:设置默认字符集
-DDEFAULT_COLLATION:设置默认校对规则
-DWITH_BOOST:指定boost库路径(如果需要支持InnoDB memcached接口,需要指定)
3. 编译并安装
在MySQL源码目录中执行以下命令进行编译,这里使用make命令:
make
编译完成后,执行以下命令进行安装:
sudo make install
五、启动MySQL服务
1. 初始化数据
在安装目录下的bin目录中执行以下命令来初始化数据:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
初始化完成后,会输出一个随机生成的密码,需要记录下来,后面登录MySQL需要使用该密码。
2. 启动服务
执行以下命令来启动MySQL服务:
sudo systemctl start mysqld
如果需要系统重启后自动启动MySQL服务,可以执行以下命令:
sudo systemctl enable mysqld
3. 配置MySQL安全
安装完成后,需要进行一些基本的安全配置,包括修改root用户密码、移除test数据库等。
执行以下命令进入MySQL安全配置向导:
sudo /usr/local/mysql/bin/mysql_secure_installation
按照提示依次进行操作即可。
六、连接MySQL
1. 登录MySQL
在终端中执行以下命令登录到MySQL:
mysql -u root -p
回车后输入刚才记录下来的密码即可登录。
2. 修改root用户密码
执行以下SQL命令来修改root用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
这里的“新密码”为自己设定的新密码。
3. 创建新用户
执行以下SQL命令来创建一个新用户:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
这里的“username”为新用户名,“password”为新用户密码。
4. 授权
执行以下SQL命令来授权新用户访问某个数据库:
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
这里的“dbname”为数据库名,“username”为新用户名。
5. 退出MySQL
执行以下命令退出MySQL:
exit;
七、总结
到这里,MySQL的编译安装就完成了。