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
但是密碼已經被修改了,不影響