sudo apt update
sudo apt install -y build-essential cmake libncurses5-dev libssl-dev libboost-all-dev bison git
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.x.tar.gz
# 替换x为具体版本号,例如:
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33.tar.gz
tar -zxvf mysql-8.0.x.tar.gz
cd mysql-8.0.x
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 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=../boost
make -j$(nproc)
sudo make install
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
sudo mkdir -p data
sudo chown -R mysql:mysql .
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后会显示临时密码,类似:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 临时密码
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo cp support-files/my-default.cnf /etc/my.cnf
编辑 /etc/my.cnf
:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
[client]
socket=/tmp/mysql.sock
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc
sudo /etc/init.d/mysql start
mysql -uroot -p
# 输入之前记录的临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
sudo update-rc.d mysql defaults
解决方法:
wget https://sourceforge.net/projects/boost/files/boost/1.73.0/boost_1_73_0.tar.gz
tar -zxvf boost_1_73_0.tar.gz
mv boost_1_73_0 mysql-8.0.x/boost
解决方法:
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/lib/libssl.so
sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/lib/libcrypto.so
解决方法:确保 /etc/my.cnf
中的 socket 路径与 MySQL 实际使用的路径一致。
以上就是在 Debian 10.9.x 上编译安装 MySQL 8.0.x 的完整步骤。如需安装特定小版本,请替换相应的版本号。