macOS下MySQL 8.0 安裝與配置教程

来源:https://www.cnblogs.com/ken-io/archive/2018/09/06/macos-mysql8-install-config-tutorial.html
-Advertisement-
Play Games

一、前言 1、本教程主要內容 適用Homebrew安裝MySQL MySQL 8.0 基礎適用於配置 MySQL shell管理常用語法示例(用戶、許可權等) MySQL字元編碼配置 MySQL遠程訪問配置 2、本教程環境信息與適用範圍 環境信息 適用範圍 二、MySQL安裝 1、Homebrew安裝 ...


一、前言

1、本教程主要內容

  • 適用Homebrew安裝MySQL
  • MySQL 8.0 基礎適用於配置
  • MySQL shell管理常用語法示例(用戶、許可權等)
  • MySQL字元編碼配置
  • MySQL遠程訪問配置

2、本教程環境信息與適用範圍

  • 環境信息
軟體/環境版本/說明
macOS macOS High Sierra
MySQL MySQL 8.0.12
  • 適用範圍
軟體版本
macOS macOS
MySQL 8.0.x

二、MySQL安裝

1、Homebrew安裝

macOS下的Homebrew就相當於CentOS下的yum或者是Ubuntu下的apt-get

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、Homebrew安裝與啟動MySQL服務

  • 安裝mysql
brew install mysql
  • 配置並啟動MySQL服務
brew tap homebrew/services
brew services start mysql

3、修改root密碼

mysqladmin -u root password 'yourpassword'

4、MySQL安裝測試

  • 查看MySQL版本
#查看MySQL版本
mysql -V

#輸出示例
mysql  Ver 8.0.12 for osx10.13 on x86_64 (Homebrew)
  • MySQL shell測試
#進入MySQL shell
mysql -u root -p

#成功進入會輸出以下信息
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.12 Homebrew

#查看資料庫
mysql> show databases;

#退出
mysql> exit;

三、MySQL安全設置

1、MySQL 8 安全設置介紹

MySQL 8 新增了安全設置嚮導,這對於在伺服器部署MySQL來說,簡化了安全設置的操作,非常棒,不過對於macOS來說,不是剛需,如果不感興趣可以直接跳過這個章節

安全設置大致分為以下幾個步驟/選項

  1. 密碼強度驗證插件
  2. 修改root賬號密碼
  3. 移除匿名用戶
  4. 禁用root賬戶遠程登錄
  5. 移除測試資料庫(test)
  6. 重新載入授權表

以上幾個步驟/選項根據自己需要來即可。

2、MySQL 8 安全設置示例

  • 進入安全設置
mysql_secure_installation

-設置示例

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: no
#這裡我選了不安全密碼強度驗證插件

Using existing password for root.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : no
#這裡我選了不修改root密碼
 ... skipping.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : yes
Success.
#這裡我選擇了移除匿名用戶


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : yes
Success.
#這裡我選擇了禁用root賬號遠程登錄訪問

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : no
 ... skipping.
 #這裡我選擇了不移除測試資料庫

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : yes
Success.
#這裡我選擇了重新載入許可權表,因為我前面選擇了禁用root賬號遠程登錄訪問

All done!

四、MySQL shell管理語法示例

1、資料庫相關語法示例

#創建資料庫
mysql> CREATE DATABASE mydb;

#查看所有資料庫
mysql> SHOW DATABASES;

#使用數據並創建表
mysql> USE mydb;
mysql> CREATE TABLE test(id int,body varchar(100));

#查看表
mysql> SHOW TABLES;

2、用戶與訪問授權語法示例

#新建本地用戶
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';

#新建遠程用戶
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';

#賦予指定賬戶指定資料庫遠程訪問許可權
mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'test'@'%';

#賦予指定賬戶對所有資料庫遠程訪問許可權
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';

#賦予指定賬戶對所有資料庫本地訪問許可權
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost';

#刷新許可權
mysql> FLUSH PRIVILEGES;

3、授權相關語法示例

#1、查看許可權
SHOW GRANTS FOR 'test'@'%';

#2、賦予許可權
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';

#3、收回許可權
REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%';

#4、刷新許可權
FLUSH PRIVILEGES;

#5、刪除用戶
DROP USER 'test'@'localhost';

五、字元編碼配置

MySQL預設的編碼不是utf8,為了相容中文的存儲,還是需要配置一下

1、 修改字元編碼

#修改配置文件
vi /usr/local/etc/my.cnf

#修改1:增加client配置(文件開頭,[mysqld]之前)
[client]
default-character-set=utf8mb4

#修改2:增加mysqld配置(文件結尾,[mysqld]之後)
#charset
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

2、重啟生效

  • 重啟MySQL服務
mysql.server restart
#也可以使用命令:brew services restart mysql
#不過建議使用命令:mysql.server restart在出錯時可以看到更準確完整的信息
  • 查看字元編碼
#進入MySQL shell
mysql -u root -p

#查看字元編碼
mysql>  show variables like '%char%';

六、遠程訪問配置

MySQL預設綁定了ip:127.0.0.1。如果我們需要遠程訪問,去掉該配置即可

1、 修改ip綁定

#修改配置文件
vi /usr/local/etc/my.cnf

#註釋掉ip-address選項
[mysqld]
# Only allow connections from localhost
#bind-address = 127.0.0.1

2、重啟生效

  • 重啟MySQL服務
mysql.server restart

七、備註

相關閱讀

  • MySQL中的utf8

http://www.infoq.com/cn/articles/in-mysql-never-use-utf8-use-utf8

  • MySQL遠程訪問與bind-address問題

https://serverfault.com/questions/139323/how-to-bind-mysql-server-to-more-than-one-ip-address


 

本文首發於我的獨立博客:https://ken.io/note/macos-mysql8-install-config-tutorial

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載 2.解壓 3.重命名 4.編譯 有可能會出現 那就去安裝 成功了 安裝PHP-redis擴展 1.下載 2.解壓 3.找到phpize文件,生成配置 在redis-4.0.2文件夾中執行 4.配置 這個時候會報一些錯誤,打開php.ini 去除shell_exec,proc_open 5. ...
  • 文中部分內容摘自駿馬金龍的博客,查看可 "點擊" 1. crontab簡述 crontab命令用於周期性的執行任務,想要執行這個命令,需要首先啟動crond(守護進程)服務才行 crontab是配置管理crontab file的功程式,也可以移除或列出用於為 cron 提供服務的現有表項 cront ...
  • oracle net manager來加密客戶端與資料庫之間或中間件與 資料庫之間的網路傳輸數據 第一步:開始 所有程式 oracle 配置和移植工具 net Manager 第二步:選擇本地 概要文件 oracle高級安全性 SSL選項卡選擇客戶機或伺服器 第三步:進入加密選項卡,選擇或填寫加密類 ...
  • 今天在用mongoexport導出滿足一定條件下的數據時,遇到了一個報錯,現紀錄下來,並且針對此錯誤對MongoDB 的 數字類型 做了進一步的學習。 背景 及 報錯信息 今天接到一個業務需求,需要從MongoDB 資料庫 order集合中導出符合以下條件的數據: db.qqwj_order.fin ...
  • 今天來水一篇,差點被這個遠程登錄搞死了,所以記錄下這個問題。 先使用 命令查看一下 版本,這裡可以可以看到我用的是是 版本。 mysql status mysql Ver 8.0.12 for Linux on x86_64 (MySQL Community Server GPL) Connecti ...
  • 覆蓋索引的定義: 如果一個索引包含(或覆蓋)所有需要查詢的欄位的值,稱為‘覆蓋索引’。即只需掃描索引而無須回表。 只掃描索引而無需回表的優點: 1.索引條目通常遠小於數據行大小,只需要讀取索引,則mysql會極大地減少數據訪問量。 2.因為索引是按照列值順序存儲的,所以對於IO密集的範圍查找會比隨機 ...
  • 本文將介紹用於大數據堆棧的五個最有用的架構,以及每個架構的優點,以便更好地理解和權衡。此外,還對成本、何時使用、熱門產品,以及每種架構的提示和技巧進行了闡述。 本文將介紹用於大數據堆棧的五個最有用的架構,以及每個架構的優點,以便更好地理解和權衡。此外,還對成本、何時使用、熱門產品,以及每種架構的提示 ...
  • 本文主要借鑒了以下文章內容 http://www.runoob.com/mysql/mysql-install.html https://www.cnblogs.com/t1508001/p/5821452.html 1、首先進入官網下載mysql安裝包, 官網地址:https://dev.mysq ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...