ubuntu20安裝配置mysql8.0.23步驟詳解
引言
網(wǎng)上安裝配置mysql
教程紛繁雜亂。我常折騰wsl、虛擬機(jī)、樹莓派,多是使用apt
包管理器、基于ubuntu
的linux發(fā)行版。
記錄常用到的安裝和配置mysql
教程,作為筆記和踩坑日志,便復(fù)用。
本教程是在ubuntu20
上使用apt
安裝mysql8.0
并處理相關(guān)配置,以及開啟遠(yuǎn)程連接可被其他電腦訪問。
包含一下內(nèi)容:
mysql8.0
的安裝(使用apt
包管理器安裝)mysql
配置(初始化密碼、開啟遠(yuǎn)程訪問權(quán)限)
centos
等可能和ubuntu
存在差異,請(qǐng)參考其他教程
前提
實(shí)驗(yàn)平臺(tái):ubuntu20.04.2
目標(biāo)mysql
版本:8.0.23
bot@ubuntu:~/Desktop/python/django/2$ mysql --version mysql Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
安裝
在ubuntu
中安裝mysql
只要一行命令就可以了 sudo apt install mysql-server
bot@ubuntu:~/Desktop/python/django/2$ sudo apt install mysql-server [sudo] bot 的密碼: 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關(guān)系樹 正在讀取狀態(tài)信息... 完成 mysql-server 已經(jīng)是最新版 (8.0.23-0ubuntu0.20.04.1)。 下列軟件包是自動(dòng)安裝的并且現(xiàn)在不需要了: linux-headers-5.4.0-42 linux-headers-5.4.0-42-generic linux-image-5.4.0-42-generic linux-modules-5.4.0-42-generic linux-modules-extra-5.4.0-42-generic 使用'sudo apt autoremove'來卸載它(它們)。 升級(jí)了 0 個(gè)軟件包,新安裝了 0 個(gè)軟件包,要卸載 0 個(gè)軟件包,有 0 個(gè)軟件包未被升級(jí)。
配置
注意事項(xiàng)
通過apt
安裝的mysql
不需要像其他平臺(tái)那樣開啟服務(wù),因?yàn)橐呀?jīng)默認(rèn)開啟,并且服務(wù)名叫做mysql
,而不是mysqld
上圖中的做法這里并不需要
不需要做的事情:
- 啟動(dòng)
- 設(shè)置開機(jī)啟動(dòng)
因?yàn)?,這兩件事情已經(jīng)通過apt自動(dòng)完成了
參考鏈接:centOS7 install mysql8.0.23
MySQL服務(wù)管理
sudo service mysql status # 查看服務(wù)狀態(tài) sudo service mysql start # 啟動(dòng)服務(wù) sudo service mysql stop # 停止服務(wù) sudo service mysql restart # 重啟服務(wù)
查看mysql狀態(tài)
輸入service mysql status
就可以看到mysql正在運(yùn)行中了,差不多要占350MB的內(nèi)存
bot@ubuntu:~/Desktop/python/django/2$ service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-02-10 16:15:50 CST; 17min ago Process: 1008 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS) Main PID: 1168 (mysqld) Status: "Server is operational" Tasks: 37 (limit: 4620) Memory: 395.2M CGroup: /system.slice/mysql.service └─1168 /usr/sbin/mysqld 2月 10 16:15:45 ubuntu systemd[1]: Starting MySQL Community Server... 2月 10 16:15:50 ubuntu systemd[1]: Started MySQL Community Server.
登錄
方法一:默認(rèn)賬戶登錄
查看密碼使用sudo cat /etc/mysql/debian.cnf
這條查看
bot@ubuntu:~/Desktop/python/django/2$ sudo cat /etc/mysql/debian.cnf [sudo] bot 的密碼: # Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = SffnwAJrKhIFZ2tO socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = SffnwAJrKhIFZ2tO socket = /var/run/mysqld/mysqld.sock
方法二:直接進(jìn)入mysql命令:sudo mysql
本地 root 用戶
到了關(guān)鍵的一步,其實(shí)現(xiàn)在你的數(shù)據(jù)庫中就有一個(gè)叫做 host
字段為 localhost
的 root
的用戶我們需要做如下幾件事情:
- 修改初始 root 用戶的密碼(修為我們自己的密碼)
不需要授予訪問權(quán)限等操作,因?yàn)槟J(rèn)已經(jīng)有了
重置密碼
重置 root 賬戶密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
FLUSH PRIVILEGES;
遠(yuǎn)程root 用戶
如果需要遠(yuǎn)程登陸:
- 創(chuàng)建一個(gè)
host
字段為%
的 root 用戶(創(chuàng)建用戶的同時(shí)設(shè)置密碼) - 授權(quán)所有數(shù)據(jù)庫的訪問權(quán)限
- 刷新權(quán)限列表
有些 uu 就會(huì)很奇怪為什么要?jiǎng)?chuàng)建兩個(gè) root
用戶呢?這個(gè)和 mysql
的用戶管理方式有關(guān)系:localhost
表示本機(jī)登錄;%
表示遠(yuǎn)程登陸。
如果 root
用戶只有 %
,那就只能除了本機(jī)外的其他計(jì)算機(jī)才能登陸 mysql server,如果用戶只有 localhost
,那只有本機(jī)可以登錄,遠(yuǎn)程計(jì)算機(jī)不能登錄 mysql server
那么 mysql 為什么要這么設(shè)計(jì)呢?可能是為了安全吧!這樣我們可以為 root 設(shè)置兩個(gè)不同的密碼,localhost
環(huán)境下設(shè)置一個(gè)很簡(jiǎn)單的密碼;%
環(huán)境下就可以極其復(fù)雜
諸如:MnRmsrdm9wjkT5XC9Y2F5b4IouAPZBfx
(注意 mysql 的密碼有長(zhǎng)度限制,好像是 32 個(gè)字符長(zhǎng)度)
新建一個(gè) host 為 % 的 root用戶,密碼隨意
create user 'root'@'%' identified by 'yourpassword';
授權(quán)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
刷新權(quán)限
FLUSH PRIVILEGES;
通過如下的方式查看我們的用戶信息情況
mysql> use mysql mysql> select host,user,authentication_string from user; +-----------+------------------+------------------------------------------------------------------------+ | host | user | authentication_string | +-----------+------------------+------------------------------------------------------------------------+ | % | root | *96E7A848AB10957950D4E01EE8D60E361205A073 | | localhost | debian-sys-maint | $A$005$)h&}?mq<1rx*2^ut5na8v15kXP0XBBiK63RFLJBF2vHY0DYnmVHNA/PoHA | | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | localhost | root | *96E7A848AB10957950D4E01EE8D60E361205A073 | +-----------+------------------+------------------------------------------------------------------------+ 6 rows in set (0.00 sec)
遠(yuǎn)程連接
光設(shè)置需要登陸用戶的 host 為 % 是不夠的,因?yàn)?mysql 的配置文件中靜止了遠(yuǎn)程登錄,需要去修改一下配置文件。
??????
如果你遇到了這個(gè)問題,并不需要修改防火墻等等,只需按我如下的操作即可。
先關(guān)停mysql服務(wù)
sudo systemctl stop mysql
編輯mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注銷掉
#bind-address = 127.0.0.1
在開啟mysql服務(wù)即可sudo service mysql start
bot@ubuntu:~$ sudo service mysql start bot@ubuntu:~$ sudo service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-02-10 21:05:54 CST; 10s ago Process: 4013 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SU> Main PID: 4021 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 4619) Memory: 334.7M CGroup: /system.slice/mysql.service └─4021 /usr/sbin/mysqld 2月 10 21:05:54 ubuntu systemd[1]: Starting MySQL Community Server... 2月 10 21:05:54 ubuntu systemd[1]: Started MySQL Community Server.
此時(shí),既可以本地(直接物理機(jī)的終端
上,或者ssh
連接至物理機(jī)),又可以遠(yuǎn)程(通過dataGrip
、navicat
這些軟件)
以上就是ubuntu20安裝配置mysql8.0.23步驟詳解的詳細(xì)內(nèi)容,更多關(guān)于ubuntu安裝配置mysql的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分
這篇文章主要介紹了MySQL?分區(qū)表中分區(qū)鍵為什么必須是主鍵的一部分,分區(qū)是一種表的設(shè)計(jì)模式,通俗地講表分區(qū)是將一大表,根據(jù)條件分割成若干個(gè)小表,更多相關(guān)資料需要的小伙伴可以參考下面文章內(nèi)容2022-03-03快速解決mysql導(dǎo)數(shù)據(jù)時(shí),格式不對(duì)、導(dǎo)入慢、丟數(shù)據(jù)的問題
這篇文章主要介紹了快速解決mysql導(dǎo)數(shù)據(jù)時(shí),格式不對(duì)、導(dǎo)入慢、丟數(shù)據(jù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07一文帶你了解MySQL之InnoDB統(tǒng)計(jì)數(shù)據(jù)是如何收集的
通過show index可以看到關(guān)于索引的統(tǒng)計(jì)數(shù)據(jù),那么這些統(tǒng)計(jì)數(shù)據(jù)是怎么來的呢,它們是以什么方式收集的呢,本章將聚焦于InnoDB存儲(chǔ)引擎的統(tǒng)計(jì)數(shù)據(jù)收集策略,需要的朋友可以參考下2023-05-05mysql中如何將時(shí)間戳轉(zhuǎn)換為年月日格式進(jìn)行查詢
這篇文章主要介紹了mysql中如何將時(shí)間戳轉(zhuǎn)換為年月日格式進(jìn)行查詢問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07解決MySQL登錄報(bào)錯(cuò)1045-Access?denied?for?user?'root'@
這篇文章主要給大家介紹了關(guān)于解決MySQL登錄報(bào)錯(cuò)1045-Access?denied?for?user?‘root‘@‘‘(using?password:YES)的相關(guān)資料,文中一步步將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07