一、下載mysql8.0.16源碼包和cmake源碼包html
cd /usr/local/src
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.16.tar.gz
cname源碼包下載地址:https://cmake.org/download/mysql
我這裏下載了一個cmake-3.15.0-rc1.tar.gzsql
注意mysql的源碼包必定不要下錯了,下錯了會報錯:does not appear to contain CMakeLists.txt數據庫
二、編譯安裝cmakevim
2.一、解壓cmake並進入目錄app
tar zxf cmake-3.15.0-rc1.tar.gz cd cmake-3.15.0-rc1
2.二、配置、編譯、安裝socket
./configure --prefix=/usr/local/cmake make make install
--prefix 參數是配置cmake的安裝目錄ide
2.三、作cmake命令軟鏈接,查看cmake版本spa
ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
cmake --version
三、編譯安裝mysql8,在安裝以前須要升級GCC(傳送陣:升級gcc)rest
3.一、解壓mysql8源碼包並進入目錄
cd /usr/local/src tar zxf mysql-boost-8.0.16.tar.gz cd mysql-8.0.16
3.二、配置、編譯、安裝(配置編譯報錯集合)
mkdir bld cd bld cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DSYSCONFDIR=/etc \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=/usr/local/src/mysql-8.0.16/boost \ -DFORCE_INSOURCE_BUILD=1 \ -DCMAKE_CXX_COMPILER=/usr/local/gcc/bin/g++ \ -DDEFAULT_CHARSET=utf8 make make install
四、建立數據庫用戶
useradd -s /sbin/nologin mysql
五、建立數據存放目錄並修改權限
mkdir /usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql
六、修改配置文件(根據本身的狀況來配置)
[mysqld] port=3306 server-id=1 basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/mysql.sock [client] socket=/usr/local/mysql/mysql.sock
七、初始化數據庫並安裝ssl
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
/usr/local/mysql/bin/mysql_ssl_rsa_setup
八、複製啓動腳本、啓動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld /etc/init.d/mysqld start
九、修改mysql密碼(忘記密碼)
9.1在配置文件中的[mysqld]下加入skip-grant-tables
vim /etc/my.cnf [mysqld] skip-grant-tables
9.2重啓mysql
/etc/init.d/mysqld restart
9.3登陸數據庫後,修改密碼爲空。
mysql mysql >use mysql; mysql >update user set authentication_string="" where user='root'; mysql >flush privileges; mysql > exit;
9.4在配置文件中刪除skip-grant-tables並重啓mysql
/etc/init.d/mysqld restart
9.5登陸mysql,修改密碼
mysql -uroot -ppassword mysql>alter user 'root'@'locahost' identified by 'admin123‘;
mysql>flush provoleges; mysql>exit;