linux安裝mysql8(避坑)


1、從mysql官網下載mysql的tar包 ,下載地址:

https://dev.mysql.com/downloads/mysql/

 

根據自己的操作系統選擇不同版本,比如我的linux是Red hat,而且centos版本是7  就選對應的,

linux查看系統版本

cat /proc/version
--或者
cat /etc/redhat-release

  

 

 

 2、通過 ssh secure file transfer 工具將本地下載的mysql tar包傳輸到/usr/local/mysql目錄下

如果/usr/local目錄下沒有mysql文件夾,在/usr/local下新建mysql 文件夾

mkdir mysql

  3、進入/usr/local/mysql 解壓

tar -xzvf mysql-8.0.27-el7-x86_64.tar.gz

  解壓后會生成mysql-8.0.27-el7-x86_64文件夾,重命名該文件夾

mv mysql-8.0.27-el7-x86_64 mysql8.0

  進入/usr/local/mysql/mysql8.0 新建data文件夾,用於存放mysql數據

mkdir data

  

創建mysql用戶和mysql用戶組,執行

groupadd mysql

useradd -g mysql mysql

 例如:

改變mysql目錄權限

chown -R mysql.mysql /usr/local/mysql/mysql8.0

  注意每個人安裝mysql的目錄可能不一樣,要把/usr/local/mysql/mysql8.0 路徑替換成你自己的

 

 

 初始化數據庫之前 查看/etc目錄下是否有mysql的配置文件 my.cnf

cat /etc/my.cnf

  這里的my.cnf等同於 windows文件夾里面的my.ini

如果沒有這個文件夾 則跳過下面的直接執行第4 部。 如果有my.cnf文件夾,檢查basedir和datadir以及其他涉及mysql存放路徑的,都要改成你現在的mysql路徑,比如我的是/usr/local/mysql/mysql8.0, 那么datadir=/usr/lcoal/mysql/mysql8.0/data , basedir=/usr/local/mysql/mysql8.0 

 

4、初始化

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql8.0 --datadir=/usr/local/mysql/mysql8.0/data 

  查看mysql8.0目錄下是否生成 mysql-error.log文件,mysql臨時密碼存放在這里面

 

 

這時候使用 mysql -uroot -p 登錄mysql會提示 command not found

因為系統默認會查找/usr/bin下命令,需要將mysql命令映射到/usr/bin下

cd  /usr/local/bin
ln -fs /usr/local/mysql/mysql8.0/bin/mysql mysql

  把/usr/local/mysql/mysql8.0 換成你自己的mysql目錄

這樣就可以執行 mysql -uroot -p 登錄mysql 

密碼輸入剛才獲得的臨時密碼

修改密碼:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
--刷新密碼
flush privileges;

  

 

要是想在其他服務器遠程登錄該mysql

還需要修改root訪問權限

grant all privileges on *.* to 'root' @'%' identified by 'root';
--或者
update user set host ='%' where user ='root' and host ='localhost'; flush privileges;

 

忘記密碼 需要修改/etc/my.cnf, 在[mysqld]下添加一行

skip-grant-tables

  登錄后修改密碼

use mysql;
update user set authentication_string='' where user='root';

  然后退出,重啟mysql 

service stop mysqld
--無法使用上面這行命令Stop mysql的時候,使用kill -9 來殺死mysqld進程
ps -ef |grep mysqld
kill -9 pid(進程號) --啟動 sh ./support-files/mysql.server start 

不知道重啟的時候 

systemctl restart mysqld.service命令為什么不能用

 

然后可以無密碼登錄

--登錄后修改密碼

ALTER USER ‘root'@‘localhost' IDENTIFIED WITH mysql_native_password BY ‘111111';
flush privileges

  注意:執行上面語句會出現  o rows affected

 

 

但是密碼已經被修改了,不影響

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM