安裝與創(chuàng)建遠程登陸
首先:一般CentOS默認安裝了mariadb派哲,所以先查看是否安裝mariadb皂吮,如果安裝就需要先卸載mariadb
rpm -qa|grep mariadb
rpm -e mariadb-libs --nodeps
然后:*在/usr/local/目錄下創(chuàng)建mysql文件夾
cd /cd usr/localmkdir mysql`
- 進入mysql文件夾內(nèi),下載mysql
cd mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
- 解壓mysql到當(dāng)前目錄
tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
- 安裝mysql越平,依次執(zhí)行下列命令
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm --nodeps --force
- 初始化和相關(guān)啟動服務(wù)配置匈庭,依次執(zhí)行下列命令
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
如果執(zhí)行mysqld --initialize; 出現(xiàn)以下報錯,先執(zhí)行yum -y install numactl甜攀,再執(zhí)行 yum install -y libaio
,再執(zhí)行mysqld --initialize
如果執(zhí)行systemctl start mysqld.service; 出現(xiàn)以下報錯秋泄,先執(zhí)行tail -f /var/log/mysqld.log查看錯誤日志
如果錯誤日志如下,執(zhí)行cd /var/lib/mysql规阀,執(zhí)行rm -rf *刪除所有文件恒序,再執(zhí)行systemctl start mysqld.service
- 查看數(shù)據(jù)庫初始化密碼
cat /var/log/mysqld.log | grep password
- 修改密碼,密碼需要數(shù)字谁撼,大小寫字母歧胁,特殊符號
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';
設(shè)置密碼永不過期.一定要記得執(zhí)行下面代碼刷新MySQL的系統(tǒng)權(quán)限相關(guān)表
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
- 創(chuàng)建遠程訪問用戶,依次執(zhí)行下列命令
create user 'root'@'%' identified with mysql_native_password by 'xxxxx';grant all privileges on *.* to 'root'@'%' with grant option;flush privileges;
vmware中的Centos 7.6安裝mysql
- 下載mysql
https://downloads.mysql.com/archives/community/2023.3現(xiàn)在還能打開彤敛。
dde893e374bc901ab63d2077ed36d69b_1993414-20221111150449631-1264230631.png - 放到服務(wù)器后解壓-C 放到指定文件夾,進入/usr/local把解壓的目錄更改一下名字
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C /usr/local
cd /usr/local
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql
- 創(chuàng)建mysql 用戶和用戶組
>groupadd mysql
>useradd -r -g mysql mysql
- 創(chuàng)建數(shù)據(jù)文件夾data与帆,并給權(quán)限
> mkdir -p /usr/local/data
# 給mysql用戶權(quán)限
> chown -R mysql:mysql /usr/local/data
> chmod -R 755 /usr/local/data
- 給mysql的log目錄權(quán)限
chown -R mysql:mysql /var/log
- 修改mysql配置文件 vi /etc/my.cnf
[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/data
socket=/tmp/mysql.sock
#socket=/data/mysql/mysql.sock
log-error=/var/log/mysql.err
pid-file=/var/log/mysql.pid
##character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
~
- 初始化mysql
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/data/ --user=mysql --initialize
- 查看mysql臨時密碼,并查看進程
cat /var/log/mysql.err
ps -ef|grep mysql
- 登錄mysql并設(shè)置遠程登錄功能,修改root密碼。
方式一:
bin]#./mysql -u root -p
password:隨機密碼
# 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xiong';
# 刷新權(quán)限
FLUSH PRIVILEGES;
#設(shè)置遠程登錄
mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit
方式二:創(chuàng)建root另一個用戶%表示所有ip都可登錄
> CREATE USER 'root'@'%' IDENTIFIED BY '123456';
> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
> FLUSH PRIVILEGES;
use mysql;
>update user set user.Host='%' where user.User='root';
>flush privileges;
rpm格式的5.x版本的mysql安裝示例
1.下載MySQL-5.5.56-1.el7.x86_64.rpm-bundle.tar
----本人已在csdn下載了墨榄,放在了百度網(wǎng)盤中玄糟。
2.tar -xvf解壓產(chǎn)生很多rpm式的文件,我們只安裝server ,client.
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
//會有很多提示袄秩,要安裝依賴包阵翎,要什么我們裝什就完事了
yum install -y ***
3.查看安裝成功否
rpm -qa|grep -i mysql
云主機上的問題
- 問題一
Starting MySQL. ERROR! The server quit without updating PID file (/var/log/mysql.pid).
項目應(yīng)用情況注意:
-
IDEA中mysql8.x注意時區(qū)設(shè)置問題,不設(shè)置容易出錯之剧。
11 查看時區(qū)
show VARIABLES like '%time_zone%';
image.png
time_zone: 表示 MySQL 采用的是系統(tǒng)的時區(qū)郭卫。也就是說,如果在連接時沒有設(shè)置時區(qū)信息背稼,就會采用這個時區(qū)配置贰军。
12僅修改當(dāng)前會話的時區(qū),停止會話失效(CET)set time_zone = '+8:00';
13 修改全局的時區(qū)配置
set globaltime_zone = '+8:00';
flush privileges;
大多數(shù)時候用到13.
windows安裝mysql
- 下載下載地址:
https://dev.mysql.com/downloads/mysql/
image.png -
解壓到安裝目錄蟹肘,在安裝目錄新建data目錄和my.ini配置文件词疼,并配置環(huán)境變量
image.png
my.ini文件
# 設(shè)置3306端口
port=3306
# 設(shè)置mysql的安裝目錄
basedir=D:\\soft\\mysql-8.0.27-winx64
# 設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)的存放目錄
datadir=D:\\soft\\mysql-8.0.27-winx64\\data
# 允許最大連接數(shù)
max_connections=30
# 允許連接失敗的次數(shù)。這是為了防止有人從該主機試圖攻擊數(shù)據(jù)庫系統(tǒng)
max_connect_errors=10
# 服務(wù)端使用的字符集默認為UTF8
character-set-server=utf8
# 創(chuàng)建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
[mysql]
# 設(shè)置mysql客戶端默認字符集
default-character-set=utf8
[client]
# 設(shè)置mysql客戶端連接服務(wù)端時默認使用的端口
port=3306
default-character-set=utf8
在環(huán)境變量中新建:MYSQL_HOME帘腹,在path中加入:%MYSQL_HOME%\bin
- 以管理員的身份打開cmd窗口跳轉(zhuǎn)路徑到D:\soft\mysql-8.0.27-winx64\bin
在窗口輸入:mysqld --initialize --user=mysql --console贰盗,這一步會根據(jù)我們的配置文件初始化我們的mysql服務(wù)。最后可以看到阳欲,系統(tǒng)給我們分配了一個默認密碼舵盈,記住這個密碼陋率,非常重要,后續(xù)會用到
image.png
輸入mysqld -install進行服務(wù)的添加秽晚。
(如果這一步報:Install/Remove of the Service Denied问顷,就表示你沒有用管理員身份打開cmd井誉,C:\Windows\System32\cmd.exe用管理員身份啟動即可解決)
mysql服務(wù)佳遂。最后可以看到落恼,系統(tǒng)給我們分配了一個默認密碼,記住這個密碼扯再,非常重要芍耘,后續(xù)會用到。
image.png
輸入mysqld -install進行服務(wù)的添加熄阻。
(如果這一步報:Install/Remove of the Service Denied斋竞,就表示你沒有用管理員身份打開cmd,C:\Windows\System32\cmd.exe用管理員身份啟動即可解決)
image.png
輸入net start mysql啟動服務(wù)秃殉。
image.png
輸入mysql -u root -p進行登錄數(shù)據(jù)庫坝初,這時提示需要密碼,然后就是用你上面的默認密碼登錄钾军。
修改密碼語句:ALTER USER root@localhost IDENTIFIED BY '你的密碼'; 鳄袍。
輸入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
然后輸入FLUSH PRIVILEGES;
這兩句是為了讓你navicat連的時候,不報1251錯誤的吏恭。 - windows 配置mysql允許遠程登陸拗小。
1.----連接Mysql (連接方式:mysql -u 你設(shè)置的用戶名 -p你設(shè)置的密碼 )
2.----查看數(shù)據(jù)庫:show databases;我們會看到有一個叫做"mysql"的數(shù)據(jù)庫,這里我們輸入: use mysql 進入'mysql'數(shù)據(jù)庫中
3.----執(zhí)行 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '你設(shè)置的密碼' WITH GRANT OPTION;
若出現(xiàn)ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
解決方案:
執(zhí)行一次:mysql> flush privileges;
然后再執(zhí)行:GRANT ALL Privileges....語句。
重啟一下mysql服務(wù)
注意:如果是云主機樱哼,遠程不能連接哀九,那么可能是,防火墻規(guī)則沒有放行3306端口搅幅。我們要添加允許3306端口放行數(shù)據(jù)阅束。
image.png
4.----刷新, FLUSH PRIVILEGES;
centos 7安裝mysql 5.7
下載需要的tar文件
你可以選擇在官網(wǎng)下載你需要的包,或者使用我提供的網(wǎng)盤連接進行下載茄唐。筆者使用的版本在之前已經(jīng)介紹息裸,為5.7.38。如果你使用其他的版本可能會出現(xiàn)一些問題沪编。比如5.7.22呼盆,說實話我失敗了。
卸載mysql
嗯哼漾抬?嗯哼宿亡?嗯哼常遂? 對纳令,你的電腦可能確實安裝了關(guān)于mysql,建議檢查一遍,如果安裝必須刪除平绩。不然報錯圈匆!報錯!錯D蟠啤T咀!P允N嘲痢!
先判斷是否安裝rpm快速包肤频,如果存在就需要刪除
rpm -qa | grep mysql
# 刪除指令
rpm -e --nodeps <列出的數(shù)據(jù)> [列出的數(shù)據(jù)...]
往往這么刪除是不夠了叹括,還需要查詢系統(tǒng)里面關(guān)于mysql的文件如果你通過以上指令出現(xiàn)的結(jié)果多了,請通過rm -ef <文件名>刪除多出的文件夾宵荒,如果你/usr/lib64/mysql文件不僅有plugin也請直接刪除汁雷。
[root@musiro ~]# find / -name mysql
> /usr/lib64/mysql
> /etc/selinux/targeted/active/modules/100/mysql
[root@musiro ~]# ls /usr/lib64/mysql
> plugin
安裝幾個需要的依賴
gzip:用于第一步解壓
perl libaio:mysql-server安裝需要的依賴
yum install -y gzip perl libaio;
上傳文件并解壓文件
筆者將文件上傳到/home/mysql/文件夾下,注意mysql的安裝根文件的位置毛關(guān)系沒有报咳。所以放在你習(xí)慣的地方即可侠讯。解壓文件
gzip mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar;
tar -zxvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar.gz
安裝rpm文件
一定要注意順序,順序不對會報錯暑刃。
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm mysql-community-libs-5.7.38-1.el7.x86_64.rpm mysql-community-client-5.7.38-1.el7.x86_64.rpm mysql-community-server-5.7.38-1.el7.x86_64.rpm
# 如果出問題你就一個一個安裝
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm;
rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm;
如果安裝的8.x版本厢漩,安裝順序為:
common
client-plugins
libs
client
icu-data-files
server
啟動mysql
直接啟動,千萬不要玩花里胡哨的,比如初始化,授權(quán)等等岩臣,如果報錯了讓你知道什么叫做問題黑洞袁翁。
systemctl start mysqld
連接數(shù)據(jù)庫
[root@musiro ~]# grep "password" /var/log/mysqld.log
[root@musiro ~]# mysql -uroot -p
右鍵粘貼即可,看不到的婿脸,后續(xù)操作要重設(shè)密碼粱胜,密碼不能設(shè)置太簡單了,我是Xiong1983.包括一個點狐树。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xiong1983.';
修改簡單密碼
如果你只是學(xué)習(xí)的目的使用mysql焙压,不想設(shè)置復(fù)雜的mysql。OK這一步能夠滿足你的需求抑钟。先查看一下密碼設(shè)置的要求
SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_check_user_name | OFF | 名字檢測
| validate_password_dictionary_file | | 字典文件
| validate_password_length | 8 | 長度
| validate_password_mixed_case_count | 1 | 字母
| validate_password_number_count | 1 | 數(shù)字
| validate_password_policy | MEDIUM | 難度
| validate_password_special_char_count | 1 | 字符
+--------------------------------------+--------+
- LOW -> 只有長度限制
- MEDIUM -> 除了字典文件其他都限制
- STRONG -> 全部
直接修改涯曲,只是臨時起作用,重啟系統(tǒng)在塔,還是會恢復(fù)的幻件。
set global validate_password_length = 5;
set global validate_password_policy = 0;
必須要寫入/etc/my.cnf配置文件例才能永久生效
vi /etc/my.cnf在[mysqld]下加如下兩行代碼
---------------------------------------------------------------------------------------------------
validate_password_policy=0
validate_password_length=5
這樣我們就可以改自已設(shè)的定碼了,十分爽
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xiong';
遠程連接數(shù)據(jù)庫
update user set host='%' where user='root';