环境:Ubuntu 20.04
从官网下载mysql8.0.27源码包
https://dev.mysql.com/downloads/mysql/
一、安装mysql
解压并创建build
tar zxvf mysql-8.0.27.tar.gz
cd mysql-8.0.27
mkdir build
cd build
我的cmake命令
cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='Mysqlma' \
-DWITH_READLINE=ON \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost/boost_1_73_0 \
-DSYSCONFDIR=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
期间cmake报什么包没有就去下载相应的包…
尤其是boost 要下它指定的版本 路径需要指定 要不然找不着 mysql8.0.27指定的是boost_1_73_0
安装
make -j 12
make install
安装成功后进入mysql目录
cd /usr/local/mysql/
二、配置
1.修改my.cnf文件
vi my.cnf
[mysqld]
port=3307
socket=/usr/local/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
[mysqld_safe]
log-error=/usr/local/mysql/logs/mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
[client]
port=3307
socket=/usr/local/mysql/mysql.sock
创建日志文件 以后有什么报错都来这里看
mkdir logs
2添加mysql用户组
groupadd mysql
useradd -g mysql mysql
#mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
此时mysql下目录
LICENSE README bin lib my.cnf run var
LICENSE-test README-test docs logs mysql-test share
LICENSE.router README.router include man mysqlrouter-log-rotate support-files
cd bin
初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
类似于2021-12-02T11:11:46.249303Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxxxx
初始化后mysql下目录
LICENSE README bin include man mysql.sock(红色) mysqlrouter-log-rotate run var
LICENSE-test README-test data lib my.cnf mysql.sock.lock mysqlx.sock(红色) share
LICENSE.router README.router docs logs mysql-test mysqld.pid mysqlx.sock.lock support-files
启动mysql服务
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf --user=mysql &
[1] 27370
root@xxxx:/usr/local/mysql# 2021-12-02T11:21:58.257259Z mysqld_safe Logging to ‘/usr/local/mysql/logs/mysqld.log’.
2021-12-02T11:21:58.576203Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
注意这里若出现了localhost.localdomain.pid ended 就表示没有启动成功,它退出了
连接mysql
/usr/local/mysql/bin/mysql -uroot --socket=/usr/local/mysql/mysql.sock -p
输入刚才记下来的密码,即可进入mysql
修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';