MySQL™ 參考手冊(安裝後設置和測試)

安裝後設置和測試

本節討論安裝MySQL後應執行的任務:mysql

  • 若有必要,初始化數據目錄並建立MySQL受權表,對於某些MySQL安裝方法,能夠自動爲你完成數據目錄初始化:linux

    • MySQL安裝程序執行的Windows安裝操做。
    • 使用Oracle的服務器RPM或Debian發行版在Linux上安裝。
    • 在許多平臺上使用原生打包系統進行安裝,包括Debian Linux、Ubuntu Linux、Gentoo Linux等。
    • 使用DMG發行版在macOS上安裝。
    • 對於其餘平臺和安裝類型,你必須手動初始化數據目錄,這些包括在Unix和類Unix系統上從通用二進制和源代碼發行版安裝,以及從Windows上的ZIP Archive包安裝。
  • 啓動服務器並確保能夠訪問它。
  • 若是在數據目錄初始化期間還沒有完成密碼,則將密碼分配給受權表中的初始root賬戶,密碼可防止未經受權訪問MySQL服務器。
  • (可選)安排服務器在系統啓動和中止時自動啓動和中止。
  • (可選)填充時區表以啓用對指定時區的識別。

初始化數據目錄

安裝MySQL後,必須初始化數據目錄,包括mysql系統模式中的表:sql

  • 對於某些MySQL安裝方法,數據目錄初始化是自動的。
  • 對於其餘安裝方法,你必須手動初始化數據目錄,這些包括在Unix和類Unix系統上從通用二進制文件和源代碼發行版安裝,以及從Windows上的ZIP Archive包安裝。

本節描述如何爲非自動初始化數據目錄的MySQL安裝方法手動初始化數據目錄,對於某些建議的命令,它們能夠測試服務器是否可訪問且工做正常。shell

在MySQL 8.0中,默認的身份驗證插件已從 mysql_native_password更改成 caching_sha2_password,而 'root'@'localhost'管理賬戶默認使用 caching_sha2_password

數據目錄初始化概述

在此處顯示的示例中,服務器旨在在mysql登陸賬戶的用戶ID下運行,若是賬戶不存在,請建立賬戶(請參閱建立mysql用戶和組),或者替換你計劃用於運行服務器的其餘現有登陸賬戶的名稱。數據庫

  1. 將位置更改成MySQL安裝的頂級目錄,一般是/usr/local/mysql(根據須要調整系統的路徑名):安全

    cd /usr/local/mysql

    在目錄中,你將找到多個文件和子目錄,包括包含服務器以及客戶端和實用程序的bin子目錄。服務器

  2. secure_file_priv系統變量將導入和導出操做限制爲特定目錄,建立一個目錄,其位置能夠指定爲該變量的值:網絡

    mkdir mysql-files

    將目錄用戶和組全部權授予mysql用戶和mysql組,並相應地設置目錄權限:數據結構

    chown mysql:mysql mysql-files
    chmod 750 mysql-files
  3. 使用服務器初始化數據目錄,包括包含初始MySQL受權表的mysql模式,該表肯定如何容許用戶鏈接到服務器,例如:框架

    bin/mysqld --initialize --user=mysql

    一般,只有在首次安裝MySQL後才須要進行數據目錄初始化,可是,初始化數據目錄的命令不會覆蓋任何現有的mysql模式表,所以在任何狀況下均可以安全運行。

  4. 若是要部署自動支持安全鏈接的服務器,請使用mysql_ssl_rsa_setup實用程序建立默認SSL和RSA文件:

    bin/mysql_ssl_rsa_setup
  5. 若是沒有任何選項文件,服務器將以其默認設置啓動,要顯式指定MySQL服務器在啓動時應使用的選項,請將它們放在選項文件中,例如/etc/my.cnf/etc/mysql/my.cnf。例如,你可使用選項文件來設置secure_file_priv系統變量。
  6. 數據目錄初始化在mysql模式中建立時區表,但不填充它們。

數據目錄初始化過程

將位置更改成MySQL安裝的頂級目錄,一般是/usr/local/mysql(根據須要調整系統的路徑名):

cd /usr/local/mysql

要初始化數據目錄,請使用--initialize--initialize-insecure選項調用mysqld,取決於你是但願服務器爲'root'@'localhost'賬戶生成隨機初始密碼,仍是建立沒有密碼的賬戶:

  • 使用--initialize用於「默認安全」安裝(即包括生成隨機初始root密碼),在這種狀況下,密碼標記爲已過時,你須要選擇一個新密碼。
  • 使用--initialize-insecure,不會生成root密碼,這是不安全的。假設你在將服務器投入生產使用以前及時爲賬戶分配密碼。
服務器將任何消息(包括任何初始密碼)寫入其標準錯誤輸出,這可能會重定向到錯誤日誌,所以,若是你沒有在屏幕上看到消息,請查看此處。在Windows上,使用 --console選項將消息定向到控制檯。

在Unix和類Unix系統上,重要的是數據庫目錄和文件歸mysql登陸賬戶全部,以便服務器在之後運行時對它們具備讀寫權限。要確保這一點,請從系統root賬戶啓動mysqld幷包含--user選項,以下所示:

bin/mysqld --initialize --user=mysql
bin/mysqld --initialize-insecure --user=mysql

或者,以mysql身份登陸時執行mysqld,在這種狀況下,你能夠省略命令中的--user選項。

在Windows上,使用如下命令之一:

bin\mysqld --initialize --console
bin\mysqld --initialize-insecure --console
若是缺乏必需的系統庫,數據目錄初始化可能會失敗,例如,你可能會看到以下錯誤:
bin/mysqld: error while loading shared libraries:
libnuma.so.1: cannot open shared object file:
No such file or directory
若是發生這種狀況,你必須手動或使用系統的軟件包管理器安裝缺乏的庫,而後重試數據目錄初始化命令。

若是mysqld沒法識別安裝目錄或數據目錄的正確位置,則可能須要指定其餘選項,例如--basedir--datadir,例如(在一行中輸入命令):

bin/mysqld --initialize --user=mysql
  --basedir=/opt/mysql/mysql
  --datadir=/opt/mysql/mysql/data

或者,將相關選項設置放在選項文件中,並將該文件的名稱傳遞給mysqld,對於Unix和類Unix系統,假設選項文件名是/opt/mysql/mysql/etc/my.cnf,將這些行放在文件中:

[mysqld]
basedir=/opt/mysql/mysql
datadir=/opt/mysql/mysql/data

而後按以下方式調用mysqld(首先使用--defaults-file選項在單行上輸入命令):

bin/mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf
  --initialize --user=mysql

在Windows上,假設C:\my.ini包含如下行:

[mysqld]
basedir=C:\\Program Files\\MySQL\\MySQL Server 8.0
datadir=D:\\MySQLdata

而後按以下方式調用mysqld(首先使用--defaults-file選項在單行上輸入命令):

bin\mysqld --defaults-file=C:\my.ini
   --initialize --console

數據目錄初始化期間的服務器操做

服務器執行的數據目錄初始化序列不能替代 mysql_secure_installationmysql_ssl_rsa_setup執行的操做。

當使用--initialize--initialize-insecure選項調用時,mysqld在數據目錄初始化序列期間執行如下操做:

  1. 服務器檢查數據目錄是否存在,以下所示:

    • 若是不存在數據目錄,則服務器會建立它。
    • 若是數據目錄存在但不爲空(即,它包含文件或子目錄),則在生成錯誤消息後服務器退出:

      [ERROR] --initialize specified but the data directory exists. Aborting.

      在這種狀況下,請刪除或重命名數據目錄,而後重試。
      若是每一個條目的名稱都以句點(.)開頭,則容許現有數據目錄爲非空。

  2. 在數據目錄中,服務器建立mysql系統模式及其表,包括數據字典表、受權表、時區表和服務器端幫助表。
  3. 服務器初始化管理InnoDB表所需的系統表空間和相關數據結構。

    mysqld設置 InnoDB系統表空間以後,對錶空間特性的某些更改須要設置一個全新的實例,符合條件的更改包括系統表空間中第一個文件的文件名和撤消日誌的數量。若是你不想使用默認值,請確保在運行 mysqld以前在mysql配置文件中設置了 innodb_data_file_pathinnodb_log_file_size配置參數。還要確保根據須要指定影響 InnoDB文件建立和位置的其餘參數,例如 innodb_data_home_dirinnodb_log_group_home_dir
    若是這些選項在你的配置文件中,但該文件不在MySQL默認讀取的位置,請在運行 mysqld時使用 --defaults-extra-file選項指定文件位置。
  4. 服務器建立'root'@'localhost'超級用戶賬戶和其餘保留賬戶,某些保留賬戶被鎖定且客戶端沒法使用,但'root'@'localhost'用於管理用途,你應爲其分配密碼。

    關於'root'@'localhost'賬戶密碼的服務器操做取決於你調用它的方式:

    • 使用--initialize而不是--initialize-insecure,服務器生成隨機密碼,將其標記爲已過時,並寫入顯示密碼的消息:

      [Warning] A temporary password is generated for root@localhost:
      iTag*AfrH5ej
    • 使用--initialize-insecure,(使用或不使用--initialize,由於--initialize-insecure意味着--initialize),服務器不會生成密碼或將其標記爲已過時,並寫入警告消息:

      [Warning] root@localhost is created with an empty password ! Please
      consider switching off the --initialize-insecure option.
  5. 服務器填充用於HELP語句的服務器端help表,服務器不會填充時區表。
  6. 若是給出了--init-file選項用於命名SQL語句的文件,則服務器執行文件中的語句,此選項使你能夠執行自定義引導序列。

    當服務器在引導模式下運行時,某些功能不可用,這限制了文件中容許的語句,這些包括與賬戶管理(例如CREATE USERGRANT)、複製和全局事務標識符相關的語句。

  7. 服務器退出。

初始化後root密碼分配

經過使用--initialize--initialize-insecure啓動服務器來初始化數據目錄後,正常啓動服務器(即,沒有這些選項)併爲'root'@'localhost'賬戶分配一個新密碼:

  1. 啓動服務器。
  2. 鏈接到服務器:

    • 若是你使用--initialize而不是--initialize-insecure來初始化數據目錄,請以root身份鏈接到服務器:

      mysql -u root -p

      而後,在密碼提示符下,輸入服務器在初始化序列期間生成的隨機密碼:

      Enter password: (enter the random root password here)

      若是你不知道此密碼,請查看服務器錯誤日誌。

    • 若是你使用--initialize-insecure初始化數據目錄,請以root身份而不使用密碼鏈接到服務器:

      mysql -u root --skip-password
  3. 鏈接後,使用ALTER USER語句分配新的root密碼:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
嘗試鏈接到主機 127.0.0.1一般會解析爲 localhost賬戶,可是,若是使用 --skip-name-resolve選項運行服務器,則會失敗。若是你打算這樣作,請確保存在能夠接受鏈接的賬戶,例如,要可以使用 --host=127.0.0.1--host=::1root身份鏈接,請建立如下賬戶:
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';

啓動服務器

本節介紹如何在Unix和類Unix系統上啓動服務器,若是你的安裝包含mysqld_safe,請啓動MySQL服務器:

shell> bin/mysqld_safe --user=mysql &
對於使用RPM軟件包安裝MySQL的Linux系統,使用 systemd而不是 mysqld_safe管理服務器啓動和關閉,並且未安裝 mysqld_safe

若是你的安裝包含systemd支持,請像這樣啓動服務器:

shell> systemctl start mysqld

若是它與mysqld不一樣,則替換相應的服務名稱(例如,SLES系統上的mysql)。

使用非特權(非root)登陸賬戶運行MySQL服務器很是重要,要確保這一點,請以root身份運行mysqld_safe幷包含--user選項,如上所示。不然,你應該以mysql身份登陸時執行程序,在這種狀況下,你能夠省略命令中的--user選項。

若是命令當即失敗並打印mysqld ended,請在錯誤日誌中查找信息(默認狀況下是數據目錄中的host_name.err文件)。

若是服務器沒法訪問數據目錄,它將啓動或讀取mysql模式中的受權表,它會將消息寫入其錯誤日誌。若是你在繼續執行此步驟以前經過初始化數據目錄而忽略了建立受權表,或者若是你運行了初始化數據目錄而沒有--user選項的命令,則可能會出現此類問題,刪除數據目錄並使用--user選項運行該命令。

解決啓動MySQL服務器的問題

本節提供有關啓動服務器問題的故障排除建議,若是你在啓動服務器時遇到問題,能夠嘗試如下方法:

  • 檢查錯誤日誌以查看服務器沒法啓動的緣由,日誌文件位於數據目錄中(一般是Windows上的C:\Program Files\MySQL\MySQL Server 8.0\data/usr/local/mysql/data用於Unix /Linux二進制分發版,/usr/local/var用於Unix/Linux源碼發行版)。在數據目錄中查找名稱爲host_name.errhost_name.log的文件,其中host_name是服務器主機的名稱。而後檢查這些文件的最後幾行,使用tail顯示它們:

    shell> tail host_name.err
    shell> tail host_name.log
  • 指定你正在使用的存儲引擎所需的任何特殊選項,你能夠建立my.cnf文件併爲計劃使用的引擎指定啓動選項。若是你打算使用支持事務表(InnoDBNDB)的存儲引擎,請確保在啓動服務器以前按照你的方式配置它們。

    雖然存儲引擎使用你省略的選項的默認值,但Oracle建議你查看可用選項,併爲你的安裝不適合的默認值的任何選項指定顯式值。

  • 確保服務器知道在哪裏能夠找到數據目錄,mysqld服務器使用此目錄做爲其當前目錄,這是它指望找到數據庫以及它但願寫入日誌文件的位置,服務器還將pid(進程ID)文件寫入數據目錄。

    編譯服務器時,默認數據目錄位置是硬編碼的,要肯定默認路徑設置是什麼,請使用--verbose--help選項調用mysqld。若是數據目錄位於系統上的其餘位置,請在命令行或選項文件中使用mysqldmysqld_safe--datadir選項指定該位置,不然,服務器將沒法正常工做。做爲--datadir選項的替代方法,你可使用--basedir指定mysqld安裝MySQL的基本目錄的位置,而且mysqld在那裏查找data目錄。

    要檢查指定路徑選項的效果,請使用--verbose--help選項調用mysqld,例如,若是將位置更改成安裝mysqld的目錄,而後運行如下命令,則會顯示使用/usr/local的基目錄啓動服務器的效果:

    shell> ./mysqld --basedir=/usr/local --verbose --help

    你也能夠指定其餘選項,例如--datadir,可是--verbose--help必須是最後一個選項。
    肯定所需的路徑設置後,啓動服務器而不使用--verbose--help
    若是mysqld當前正在運行,你能夠經過執行如下命令找出它正在使用的路徑設置:

    shell> mysqladmin variables

    或:

    shell> mysqladmin -h host_name variables

    host_name是MySQL服務器主機的名稱。

  • 確保服務器能夠訪問數據目錄,數據目錄及其內容的全部權和權限必須容許服務器讀取和修改它們。

    若是在啓動mysqld時得到Errcode 13(這意味着權限被拒絕),這意味着數據目錄或其內容的權限不容許服務器訪問,在這種狀況下,你能夠更改所涉及文件和目錄的權限,以便服務器有權使用它們,你也能夠以root身份啓動服務器,但這會引起安全問題,應該避免。

    將位置更改成數據目錄並檢查數據目錄及其內容的全部權,以確保服務器具備訪問權限,例如,若是數據目錄是/usr/local/mysql/var,請使用如下命令:

    shell> ls -la /usr/local/mysql/var

    若是數據目錄或其文件或子目錄不歸你用於運行服務器的登陸賬戶全部,請將其全部權更改成該賬戶,若是該賬戶名爲mysql,請使用如下命令:

    shell> chown -R mysql /usr/local/mysql/var
    shell> chgrp -R mysql /usr/local/mysql/var

    即便擁有正確的全部權,若是你的系統上運行其餘安全軟件來管理對文件系統各個部分的應用程序訪問,MySQL也可能沒法啓動,在這種狀況下,從新配置該軟件以使mysqld可以訪問它在正常操做期間使用的目錄。

  • 驗證服務器要使用的網絡接口是否可用。

    若是出現如下任一錯誤,則意味着某些其餘程序(多是另外一個mysqld服務器)正在使用mysqld嘗試使用的TCP/IP端口或Unix socket文件:

    Can't start server: Bind on TCP/IP port: Address already in use
    Can't start server: Bind on unix socket...

    使用ps肯定是否有另外一個mysqld服務器正在運行,若是是這樣,請在再次啓動mysqld以前關閉服務器。
    若是沒有其餘服務器正在運行,請執行命令telnet your_host_name tcp_ip_port_number(默認的MySQL端口號是3306),而後按幾回回車鍵。若是你沒有收到相似的錯誤消息telnet: Unable to connect to remote host: Connection refused,其餘一些程序正在使用mysqld嘗試使用的TCP/IP端口。跟蹤這是什麼程序並禁用它,或告訴mysqld使用--port選項偵聽不一樣的端口,在這種狀況下,請在使用TCP/IP鏈接到服務器時爲客戶端程序指定相同的非默認端口號。
    端口可能沒法訪問的另外一個緣由是你運行的防火牆阻止了與它的鏈接,若是是這樣,請修改防火牆設置以容許訪問端口。
    若是服務器啓動但你沒法鏈接到它,請確保在/etc/hosts中有一個以下所示的條目:

    127.0.0.1       localhost
  • 若是你沒法啓動mysqld,請嘗試使用--debug選項建立跟蹤文件以查找問題。

測試服務器

在初始化數據目錄並啓動服務器以後,執行一些簡單的測試以確保它可以使人滿意地工做,本節假定你當前的位置是MySQL安裝目錄,而且它具備包含此處使用的MySQL程序的bin子目錄,若是不是這樣,請相應地調整命令路徑名。

或者,將bin目錄添加到PATH環境變量設置中,這使你的shell(命令解釋器)可以正確地找到MySQL程序,這樣你就能夠經過只輸入它的名字來運行一個程序,而不是它的路徑名。

使用mysqladmin驗證服務器是否正在運行,如下命令提供簡單的測試,以檢查服務器是否已啓動並響應鏈接:

shell> bin/mysqladmin version
shell> bin/mysqladmin variables

若是沒法鏈接到服務器,請指定-u root選項以root身份鏈接,若是你已經爲root賬戶分配了密碼,則還須要在命令行中指定-p並在提示時輸入密碼,例如:

shell> bin/mysqladmin -u root -p version
Enter password: (enter root password here)

mysqladmin version的輸出略有不一樣,具體取決於你的平臺和MySQL版本,但應與此處顯示的相似:

shell> bin/mysqladmin version
mysqladmin  Ver 14.12 Distrib 8.0.19, for pc-linux-gnu on i686
...

Server version          8.0.19
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/lib/mysql/mysql.sock
Uptime:                 14 days 5 hours 5 min 21 sec

Threads: 1  Questions: 366  Slow queries: 0
Opens: 0  Flush tables: 1  Open tables: 19
Queries per second avg: 0.000

要查看使用mysqladmin能夠執行的其餘操做,請使用--help選項調用它。

驗證你是否能夠關閉服務器(若是root賬戶已有密碼,請包含-p選項):

確認你能夠再次啓動服務器,經過使用mysqld_safe或直接調用mysqld來完成此操做,例如:

shell> bin/mysqld_safe --user=mysql &

運行一些簡單的測試以驗證你是否能夠從服務器檢索信息,輸出應相似於此處顯示的輸出。

使用mysqlshow查看存在哪些數據庫:

shell> bin/mysqlshow
+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

已安裝數據庫的列表可能有所不一樣,但始終至少包含mysqlinformation_schema

若是指定數據庫名稱,mysqlshow將顯示數據庫中的表列表:

shell> bin/mysqlshow mysql
Database: mysql
+---------------------------+
|          Tables           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

使用mysql程序從mysql模式中的表中選擇信息:

shell> bin/mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
+------+-----------+-----------------------+
| User | Host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | caching_sha2_password |
+------+-----------+-----------------------+

此時,你的服務器正在運行,你能夠訪問它,若是你還沒有爲初始賬戶分配密碼,請增強安全性。

保護初始MySQL賬戶

MySQL安裝過程涉及初始化數據目錄,包括定義MySQL賬戶的mysql系統模式中的受權表。

本節介紹如何爲在MySQL安裝過程當中建立的初始root賬戶分配密碼(若是還沒有這樣作)。

執行本節所述過程的備選方法:

  • 在Windows上,你能夠在使用MySQL Installer進行安裝期間執行該過程。
  • 在全部平臺上,MySQL發行版都包含mysql_secure_installation,這是一個命令行實用程序,能夠自動完成保護MySQL安裝的大部分過程。
  • 在全部平臺上,MySQL Workbench均可用,並提供管理用戶賬戶的功能。

在這些狀況下,密碼可能已經分配給初始賬戶:

  • 在Windows上,使用MySQL Installer執行的安裝爲你提供了分配密碼的選項。
  • 使用macOS安裝程序進行安裝會生成一個初始隨機密碼,安裝程序會在對話框中向用戶顯示該密碼。
  • 使用RPM軟件包進行安裝會生成一個初始隨機密碼,該密碼將寫入服務器錯誤日誌。
  • 使用Debian軟件包的安裝爲你提供了分配密碼的選項。
  • 對於使用mysqld --initialize手動執行的數據目錄初始化,mysqld生成一個初始隨機密碼,將其標記爲已過時,並將其寫入服務器錯誤日誌。

mysql.user受權表定義了初始MySQL用戶賬戶及其訪問權限,安裝MySQL只會建立一個'root'@'localhost'的超級用戶賬戶,該賬戶具備全部權限並能夠執行任何操做。若是root賬戶的密碼爲空,則你的MySQL安裝不受保護:任何人均可以在沒有密碼的狀況下以root身份鏈接到MySQL服務器並得到全部權限。

'root'@'localhost'賬戶在mysql.proxies_priv表中也有一行,它容許爲'@'授予PROXY權限,即爲全部用戶和全部主機授予,這使root可以設置代理用戶,以及委託其餘賬戶設置代理用戶的權限。

要爲初始MySQL root賬戶分配密碼,請使用如下過程,將示例中的root-password替換爲你要使用的密碼。

若是服務器未運行,請啓動它。

初始root賬戶可能有也可能沒有密碼,選擇如下適用的過程:

  • 若是root賬戶存在初始隨機密碼已過時,請使用該密碼以root身份鏈接到服務器,而後選擇新密碼。若是數據目錄是使用mysqld --initialize初始化的,手動或使用安裝程序,沒法在安裝操做期間爲你提供指定密碼的選項,因爲密碼存在,你必須使用它來鏈接到服務器。但因爲密碼已過時,除非你選擇新密碼,不然不能將該賬戶用於選擇新密碼以外的任何其餘目的。

    1. 若是你不知道初始隨機密碼,請查看服務器錯誤日誌。
    2. 使用密碼以root身份鏈接到服務器:

      shell> mysql -u root -p
      Enter password: (enter the random root password here)
    3. 選擇一個新密碼來替換隨機密碼:

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
  • 若是root賬戶存在但沒有密碼,請使用無密碼以root身份鏈接到服務器,而後分配密碼,若是使用mysqld --initialize-insecure初始化數據目錄,則會出現這種狀況。

    1. 使用無密碼以root身份鏈接到服務器:

      shell> mysql -u root --skip-password
    2. 分配密碼:

      mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';

在爲root賬戶分配密碼後,只要使用該賬戶鏈接到服務器,就必須提供該密碼,例如,要使用mysql客戶端鏈接到服務器,請使用如下命令:

shell> mysql -u root -p
Enter password: (enter root password here)

要使用mysqladmin關閉服務器,請使用如下命令:

shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)

自動啓動和中止MySQL

本節討論啓動和中止MySQL服務器的方法。

一般,你能夠經過如下方式之一啓動mysqld服務器:

  • 直接調用mysqld,這適用於任何平臺。
  • 在Windows上,你能夠設置在Windows啓動時自動運行的MySQL服務。
  • 在Unix和類Unix系統上,你能夠調用mysqld_safe,它試圖肯定mysqld的正確選項,而後用這些選項運行它。
  • 在支持systemd的Linux系統上,你可使用它來控制服務器。
  • 在使用System V樣式運行目錄(即/etc/init.d和運行級別特定目錄)的系統上,調用mysql.server,此腳本主要用於系統啓動和關閉,它一般以mysql的名稱安裝,mysql.server腳本經過調用mysqld_safe啓動服務器。
  • 在macOS上,安裝一個launchd守護進程以在系統啓動時啓用自動MySQL啓動,守護程序經過調用mysqld_safe啓動服務器,MySQL首選項窗格還提供了經過「系統偏好設置」啓動和中止MySQL的控件。
  • 在Solaris上,使用服務管理框架(SMF)系統來啓動和控制MySQL啓動。

systemdmysqld_safemysql.server腳本、Solaris SMF和macOS啓動項(或MySQL首選項窗格)可用於手動啓動服務器,或在系統啓動時自動啓動。systemdmysql.server和啓動項也可用於中止服務器。

下表顯示了服務器和啓動腳本從選項文件中讀取的選項組。

MySQL啓動腳本和支持的服務器選項組

腳本 選項組
mysqld [mysqld], [server], [mysqld-major_version]
mysqld_safe [mysqld], [server], [mysqld_safe]
mysql.server [mysqld], [mysql.server], [server]

[mysqld-major_version]表示名爲[mysqld-5.7][mysqld-8.0]的組由具備5.7.x,8.0.x等版本的服務器讀取,此特性可用於指定只能由給定版本系列中的服務器讀取的選項。

爲了向後兼容,mysql.server還讀取[mysql_server]組,mysqld_safe也讀取[safe_mysqld]組。要成爲最新的,你應該更新你的選項文件以使用[mysql.server][mysqld_safe]組。

相關文章
相關標籤/搜索