Linux,Mac下MySQL的安裝及一些知識點的整理

Linux下載安裝

在服務器上下載的話,須要安裝Mysql5.7相關的yum源html

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

安裝剛下載的rpm包mysql

rpm -ivh mysql80-community-release-el7-3.noarch.rpm

確保yum源中生效的是咱們剛剛添加進來的5.7版本linux

yum repolist all | grep

結果以下圖, 很顯然,我默認生效的依賴是mysql8.0 , 因此須要修改配置sql

命令:數據庫

vim /etc/yum.repos.d/mysql-community.repo

修改爲這樣:vim

ok, 開始安裝centos

yum -y install mysql-community-server

啓動服務:bash

# centos6
service mysql stop/start

# centos6 7
systemctl stop/start/restart mysqld.service

其餘零散的知識點


在華爲雲上按上面的安裝步驟,能夠經過 whereis my 查看到配置文件的位置服務器

[root@139 ~]# whereis my
my: /etc/my.cnf

這個my.cnf中有mysql進程相關的配置,好比剛纔安裝的mysql的my.cnf就長下面這樣。socket

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

有時候咱們想配置讓mysql支持無密登錄

或者像上面那樣咱們剛安裝了一臺mysql,也不知道root的密碼是多少,能夠像下面這樣,在my.cnf中的 [mysqld] 模塊中添加 skip-grant-tables 參數實現無密登錄

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

skip-grant-tables

仍是上面的狀況,假設機器依然是centos7,咱們安裝完mysql後恰恰想用root帳戶密碼登錄mysql,那root的默認密碼在哪裏查看呢?

grep 'temporary password' /var/log/mysqld.log

這個密碼很難記,而後咱們能夠像下面這樣修改密碼

alter user 'root'@'localhost' identified by ‘newPassword’;

若是咱們設置的newPassword太簡單了,它會像下面這樣提示咱們密碼不夠強大

Your password does not satisfy the current policy requirements

因而咱們就得使用下面的命令修改規則

set global validate_password_policy=LOW;

重啓,重複上面的操做。

因而你就能本機輕鬆使用root登錄了


若是mysql不是在你的本機,而是在遠程服務器,你會發現有時明明帳號密碼都正確,可是你就是不能遠程登錄上去。極可能是由於咱們使用的這個帳號就不容許遠程登錄。

mysql的用戶信息存放在 mysql/user表下;以下圖,查看這個表中的部份內容。

下圖中的host若是爲localhsot,說名root帳戶僅能在本地登錄。

個人已經改爲 % ,支持本地登錄和遠程登錄。

經過命令修改:

# 1. 鏈接數據庫
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';

DataGrip想鏈接mysql, 須要下載相應的驅動, 以下圖:


Mac下安裝

若是你的電腦mac,能夠參考這個大佬的筆記安裝mysql:點擊查看詳情

上面的大佬中的筆記有如須要說一下的地方:

知道這一點,下次再安裝完mysql後,而後直接打開控制檯輸入mysql -V卻發現,咦?怎麼說不認識這個命令? 難道是我沒安裝成功嗎?(純潔的微笑)

固然你按照上面大佬博文中的教程將mysql安裝到mac上後。而後使用以下命令啓動mysql:

sudo mysql.server start

如何關閉mysql?

  1. 簡單粗暴的經過 ps aux | grep mysql 找到mysql的進程id,而後 kill -9 pid強殺

  2. 也能夠經過上面的腳本 sudo mysql.server stop終止mysql

然而root的密碼你仍是不知道。貌似你仍是登錄不上去啊?

那你能夠這樣作:在上面配置的support-file文件中添加啓動參數skip-grant-tables

而後你就能免密登錄了(免密登錄,它讓你輸入密碼,你直接敲回車就能進去,而後你要作的第一件事就是去改密碼)

刷新一下權限表:新設置用戶或更改密碼後需用flush privileges刷新MySQL的系統權限相關表,不然會出現拒絕訪問,還有一種方法,就是從新啓動mysql服務器,來使新設置生效。­

flush privileges

執行命令修改root密碼:

alter user 'root'@'localhost' identified by 'root';

查詢my.cnf中定義的端口:

>select @@port;
+--------+
| @@port |
+--------+
|   3306 |
+--------+

 

再說一個小技巧:能夠幫助咱們快速查看到mysql都使用了哪些配置文件。

ps aux | grep mysql

以下:(固然這是在mysql已經啓動的狀況下)

MacBook-Pro:~ root# ps aux | grep mysql
root             39669   0.0  0.0  4285448    808 s005  S+    7:32PM   0:00.00 grep mysql
_mysql           39097   0.0  0.6  4689984  47620 s005  S     7:16PM   0:00.58 /usr/local/mysql/bin/mysqld 
--basedir=/usr/local/mysql 
--datadir=/usr/local/mysql/data 
--plugin-dir=/usr/local/mysql/lib/plugin 
--user=mysql 
--skip-grant-tables 
--log-error=MacBook-Pro.local.err 
--pid-file=/usr/local/mysql/data/mysqld.local.pid
root             38998   0.0  0.0  4288076    936 s005  S     7:16PM   0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe 
--skip-grant-tables 
--datadir=/usr/local/mysql/data 
--pid-file=/usr/local/mysql/data/mysqld.local.pid
相關文章
相關標籤/搜索