linux下mysql的tar包離線安裝
1.確保mysql安裝之前有libaio依賴
yum search libaio
yum install libaio
2.下載mysql的tar離線包
下載頁面選擇系統,linux-Generic
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
刪除系統自帶mariadb
[gz_admin@ ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[gz_admin@~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
刪除etc目錄下的my.cnf文件
[gz_admin@ ~]# rm -rf /etc/my.cnf
3.解壓msyql安裝包到指定目錄下
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/local
4.重命名項目,進入/usr/local目錄
cd /usr/local
mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
5.新建mysql數據及日志存放路徑:
cd /data
mkdir mysql
cd mysql
mkdir data # 存放mysql數據
6.修改配置文件
有的話直接修改,沒有就創建
touch /etc/my.cnf
vim my.cnf
# 配置如下
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[mysqld]
port = 3306 # 設置3306端口
socket=/data/mysql/mysql.sock # 套接字保存路徑
basedir=/usr/local/mysql # 設置mysql的安裝目錄
datadir=/data/mysql/data # 設置mysql數據庫的數據的存放目錄
log-error=/data/mysql/error.log # 報錯日志路徑
pid-file=/data/mysql/mysql.pid
max_connections=1000 # 允許最大連接數
character-set-server=utf8 # 服務端使用的字符集默認為8比特編碼的latin1字符集
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
max_allowed_packet=1024M
[mysqld_safe]
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock
[mysql.server]
socket=/data/mysql/mysql.sock
7.創建mysql用戶組
[gz_admin@ ~]# groupadd mysql
#創建一個用戶名為mysql的用戶並加入mysql用戶組
[gz_admin@ ~]# useradd -g mysql mysql
#制定password 為 mysql123
[gz_admin@~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
8.修改mysql目錄權限,命令如下:
chown -R mysql:mysql /usr/local/mysql # 修改mysql屬主給mysql用戶
chown -R mysql:mysql /data/mysql # 修改data屬主給mysql用戶
chmod -R 755 /data/mysql /usr/local/mysql # 寫入權限
9.安裝初始化mysql,命令如下:
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data --initialize
注釋:
# 解壓后的文件夾路徑
--basedir=/usr/local/mysql
# 指定數據目錄,初始化過程中會自動創建該目錄
--datadir=/usr/local/mysql/data
注意,這一步會產生一個臨時密碼,需要到指定的日志文件日志中去查看。
10.將mysql進程放入系統進程中,命令如下:
修改/support-files/mysql.server文件
basedir=/usr/local/mysql
datadir=/data/mysql/data
mysqld_pid_file_path=/data/mysql/mysql.pid
拷貝到/etc/init.d/mysqld
cp support-files/mysql.server /etc/init.d/mysql
然后就可以使用此命令啟動/關閉 mysql:
service mysql start
service mysql stop
service mysql restart
11.設置開機啟動 在/etc/init.d文件夾下操作
cd /etc/init.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart
11.啟動mysql
service mysql start
mysql -u root -p # 輸入密碼進入
初始密碼查看方法,進入配置中指定的日志文件,error.log
12.設置mysql環境變量
vim /etc/profile
export PATH=$PATH:/usr/bin/mysql/bin
source /etc/profile
重置root密碼
1.編輯MySQL配置文件my.cnf
vi /etc/my.cnf #編輯文件,找到[mysqld],在下面添加一行skip-grant-tables
[mysqld]
skip-grant-tables
:wq! #保存退出
service mysqld restart #重啟MySQL服務
2.進入MySQL控制台
mysql -uroot -p #直接按回車,這時不需要輸入root密碼。
3.修改root密碼
update mysql.user set password=password('123456') where User="root" and Host="localhost";
flush privileges; #刷新系統授權表
grant all on *.* to 'root'@'localhost' identified by '123456' with grant option;
4.取消/etc/my.cnf中的skip-grant-tables
vi /etc/my.cnf 編輯文件,找到[mysqld],刪除skip-grant-tables這一行
:wq! #保存退出
5.重啟mysql
service mysqld restart #重啟mysql,這個時候mysql的root密碼已經修改為123456
6.進入mysql控制台
mysql -uroot -p #進入mysql控制台
123456 #輸入密碼
mysql服務開啟遠程訪問
問題現象:使用mysql遠程登錄命令mysql –uroot –h192.168.1.102 –p時,報錯MySQL ERROR 1130 (HY000): Host 'XXXX' is not allowed to connect to this MySQL server
問題原因:mysql服務器出於安全考慮,默認只允許本地登錄數據庫服務器。
問題解決:登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%",然后重啟mysql這樣就允許所有的遠程機器進行訪問了。
1.修改mysql表
mysql -u root -p
mysql>use mysql;
mysql>update user set host='%' where user='root';
mysql>flush privileges;
mysql>select host, user from user;
mysql>quit
2.重啟mysql
mysql.server restart