下載mysql:
https://dev.mysql.com/downloads/mysql/
解壓tar.xz文件:xz -d mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
1.解壓包
tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar
mv mysql-8.0.17-linux-glibc2.12-x86_64 /usr/local/mysql
yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel
useradd -s /sbin/nologin mysql
4.初始化數據和指定安裝目錄和數據目錄
/usr/local/mysql/bin/mysqld --initialize --console --skip-grant-tables --user=mysql --basedir=/usr/local/mysql/ --datadir=/mnt/mysql_data/
5.檢查目錄,並配置權限
mkdir /mnt/mysql_data
mkdir /var/log/mysql
mkdir /var/lib/mysql
touch /mnt/mysql_data/mysql.pid
touch /var/lib/mysql/mysql.sock
chown -R mysql:mysql /var/lib/mysql/
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /mnt/mysql_data
chmod 777 /var/lib/mysql/mysql.sock
chmod 777 /mnt/mysql_data/mysql.pid
6復制啟動文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
7.修改啟動路徑
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/mnt/mysql_data
8.增加環境變量 (最下面添加)
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
9.刷新配置文件
source /etc/profile
修改配置文件
vi /etc/my.cnf
[client] port = 3306 default-character-set = utf8 socket = /var/lib/mysql/mysql.sock [mysqld] basedir = /usr/local/mysql datadir = /mnt/mysql_data socket = /var/lib/mysql/mysql.sock log-error = /var/log/mysql/error.log pid-file = /mnt/mysql_data/mysql.pid max_connections = 300 character-set-server = utf8 default-storage-engine = INNODB lower_case_table_names = 1 max_allowed_packet = 16M user = mysql tmpdir = /tmp default_authentication_plugin = mysql_native_password [mysql] default-character-set = utf8 socket = /var/lib/mysql/mysql.sock
11.添加開啟自啟
chkconfig --add mysqld
chkconfig mysqld on
/etc/init.d/mysqld start
netstat -anpt
13.修改root默認密碼並授權遠程訪問:
在/etc/my.cnf 最后增加: skip-grant-tables = 1
重啟MySQL: /etc/rc.d/init.d/mysqld restart
mysql -uroot -p
use mysql;
update user set host = '%', authentication_string = '' where user='root';
flush privileges;
select host, user, authentication_string, plugin from user;
刪除/etc/my.cnf文件中的 skip-grant-tables = 1
重啟MySQL: /etc/rc.d/init.d/mysqld restart
ALTER USER USER() IDENTIFIED BY 'Tmp123456';
暫時關閉防火牆測試遠程連接:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
systemctl status iptables