欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ubuntu 20.04 安裝和配置MySql5.7的詳細(xì)教程

 更新時間:2020年12月18日 08:57:28   作者:Stick·連翼  
這篇文章主要介紹了Ubuntu 20.04 安裝和配置MySql5.7的相關(guān)資料,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

1. Ubuntu換源

ubuntu 20.04系統(tǒng)自帶源直接安裝是MySQL 8.0,我要安裝MySQL 5.7的版本的所以先進(jìn)行換源。

1.1 備份原來的sorce文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

1.2 修改sources.list文件

sudo vim /etc/apt/sources.list 

我選擇的是清華鏡像源。將sources.list內(nèi)容清空,然后選擇一個源粘貼到sources.list,保存退出。

# 清華鏡像源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

1.3 更新鏡像源和軟件

# 更新鏡像源
sudo apt-get update
# 更新軟件
sudo apt-get upgrade  

2. 安裝mysql

2.1 apt-get install 方式安裝

這種方式需要服務(wù)器能聯(lián)網(wǎng)

# 執(zhí)行下面安裝命令

# 安裝mysql5.7服務(wù)端
sudo apt-get install mysql-server-5.7

# 安裝mysql5.7客戶端
sudo apt-get install mysql-client-5.7

# 使用c/c++等語言操作mysql的動態(tài)鏈接庫,如果不需要可不安裝
sudo apt install libmysqlclient-dev

安裝時需要輸入兩次mysql root用戶的密碼(此密碼需要記住)


安裝完成后查看mysql版本和服務(wù)

mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服務(wù)

如上圖所示說明安裝成功。

2.2 deb安裝包方式安裝

這種安裝方式服務(wù)器能聯(lián)網(wǎng)或不能聯(lián)網(wǎng)都可以

以下安裝使用到的包可以自己去下載,也可以使用我下載好的。

鏈接: https://pan.baidu.com/s/1lJq7hZH-X35f5gC-A-URiQ

 提取碼: gxfk

1)下載deb安裝包

安裝包可以在服務(wù)器里直接獲取或者自己去官網(wǎng)下載

# 在服務(wù)器里直接獲取(服務(wù)器需要聯(lián)網(wǎng))
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

# 也可以直接將網(wǎng)址粘貼到瀏覽器下載安裝壓縮包
https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

自己去官網(wǎng)下載,選擇好mysql版本和操作系統(tǒng)版本然后點擊下載。

網(wǎng)址:https://downloads.mysql.com/archives/community/

2)使用deb包進(jìn)行安裝

將下載好的mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar壓縮包導(dǎo)入linux服務(wù)器,然后進(jìn)行下面的操作。

# 新建目錄
mkdir mysql5.7.31
mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31

# 解壓
cd mysql5.7.31
sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

# 解壓出來的deb安裝包如下:
libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb
mysql-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-source_5.7.31-1ubuntu18.04_amd64.deb
mysql-server_5.7.31-1ubuntu18.04_amd64.deb
mysql-common_5.7.31-1ubuntu18.04_amd64.deb
mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

# 刪除2個測試相關(guān)的包
sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

用dpkg進(jìn)行安裝

# 用dpkg進(jìn)行安裝
sudo dpkg -i mysql-*.deb

結(jié)果報錯了_^^

報錯的意思是缺少 2個包 libtinfo5libmecab2,那就安裝這兩個包,如果還缺少其他包,按照下面的步驟安裝即可。

# 服務(wù)器能聯(lián)網(wǎng)時直接安裝
sudo apt-get install libtinfo5
sudo apt-get install libmecab2

服務(wù)器不能聯(lián)網(wǎng)時就自己去下載然后上傳到服務(wù)器

下載網(wǎng)址 https://ubuntu.pkgs.org/

# 下載軟件包需要區(qū)分硬件架構(gòu)
[admin0@Ubuntu20:/home/admin0]$ uname -m # 查看硬件架構(gòu)
x86_64 # x86_64就是AMD64

將Binary Package對應(yīng)的網(wǎng)址復(fù)制到瀏覽器即可下載,然后將下載好的 libtinfo5libmecab2包導(dǎo)入服務(wù)器進(jìn)行安裝。

sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb
sudo dpkg -i libmecab2_0.996-10build1_amd64.deb

# 再次用dpkg進(jìn)行安裝
cd mysql5.7.31
sudo dpkg -i mysql-*.deb

提示輸入2次root密碼,然后安裝成功

安裝完成后查看mysql版本和服務(wù)

mysql -V # 查看mysql版本
netstat -tap | grep mysql # 查看mysql服務(wù)

如上圖所示說明安裝成功。

3.新建用戶并賦權(quán)

3.1 未設(shè)置或忘了密碼解決辦法

# 停止mysql服務(wù)
sudo service mysql stop

# 修改MySQL的登錄設(shè)置,暫時不校驗登陸密碼
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 將[mysqld]下的“skip-external-locking”注釋掉
# 添加 “skip-grant-tables” 然后保存退出
例如:
================================================
[mysqld]
user  = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port  = 3306
basedir  = /usr
datadir  = /var/lib/mysql
tmpdir  = /tmp
lc-messages-dir = /usr/share/mysql
#skip-external-locking
skip-grant-tables
=================================================

# 重啟mysql數(shù)據(jù)庫
sudo service mysql restart

# 免密登陸mysql數(shù)據(jù)庫
mysql -u root mysql

# 修改root密碼
update mysql.user set authentication_string=password('111222333') where user='root';

# 刷新生效
flush privileges;

# 還原MySQL的登錄設(shè)置
# 將[mysqld]下添加的“skip-grant-tables” 刪除
# 將“skip-external-locking”的注釋放開然后保存退出
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
例如:
================================================
[mysqld]
user  = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port  = 3306
basedir  = /usr
datadir  = /var/lib/mysql
tmpdir  = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
=================================================

# 重啟mysql數(shù)據(jù)庫
sudo service mysql restart

# 使用新密碼登陸mysql
mysql -u用戶名 -p密碼 數(shù)據(jù)庫名
# 例如: 
mysql -uroot -p111222333 mysql

3.2 登陸mysql查看信息

# 直接登陸mysql
mysql -u用戶名 -p密碼 數(shù)據(jù)庫名
# 例如: 
mysql -uroot -p111222333 mysql

# 先登陸后面再輸入密碼和選擇數(shù)據(jù)庫
mysql -u root -p
Enter password: “root用戶密碼”
mysql> use mysql # 選擇要操作的數(shù)據(jù)庫

# 切換數(shù)據(jù)庫
use 數(shù)據(jù)庫名;

# 查看所有數(shù)據(jù)庫
show databases; 

# 查看登陸數(shù)據(jù)庫中所有的表
show tables; 

# 查看數(shù)據(jù)表結(jié)構(gòu)
desc 表名;

# 查看登陸用戶名 
select user(); 

# 查看登陸數(shù)據(jù)庫庫名
select database();

# 查看版本
select version();

# 顯示當(dāng)前時間
select now();

# 查看所有用戶的 用戶名、可登陸主機(jī)、身份驗證插件、密碼 
select user,host,plugin,authentication_string from user;

# 查看當(dāng)前登錄用戶權(quán)限
show grants;

# 查看任意用戶權(quán)限(后面說權(quán)限的具體含義)
show grants for root@localhost;

3.3 創(chuàng)建及刪除數(shù)據(jù)庫和用戶

# 使用root用戶登錄數(shù)據(jù)庫
mysql -uroot -p111222333 mysql

# 創(chuàng)建數(shù)據(jù)庫
create database "數(shù)據(jù)庫名" charset="數(shù)據(jù)庫編碼";
# 例如:
create database pydb charset=utf8;

# 創(chuàng)建數(shù)據(jù)庫用戶
create user "用戶名"@"IP地址" identified by "密碼";
# 例如:
create user 'test0'@'localhost' identified by 'test0111';

# 刪除數(shù)據(jù)
drop database [數(shù)據(jù)庫名];
# 例如:
drop database pydb;

# 刪除數(shù)據(jù)庫用戶
drop user '用戶名'@'ip地址';
# 例如:
drop user 'test0'@'localhost';

3.4 給用戶賦權(quán)限

# 查看用戶test0的權(quán)限
show grants for test0@localhost;

顯示:[GRANT USAGE ON *.* TO 'test0'@'localhost']
USAGE: 表示無權(quán)限用戶。

# 用test0用戶登錄pydb數(shù)據(jù)庫
mysql -utest0 -ptest0111 pydb

報錯提示無權(quán)操作:[ERROR 1044 (42000): Access denied for user 'test0'@'localhost' to database 'pydb']

# 使用root用戶給test0用戶賦權(quán)
grant all privileges on '數(shù)據(jù)庫名'.'表名' to '用戶名'@'IP地址' identified by "密碼" with grant option;

# 例如設(shè)置本地客戶端訪問此用戶:
mysql> grant all privileges on pydb.* to 'test0'@'localhost' identified by 'test0111' with grant option;

# 設(shè)置遠(yuǎn)程任意客戶端訪問此用戶:
mysql> grant all privileges on pydb.* to 'test0'@'%' with grant option;

# 刷新權(quán)限
mysql> flush privileges;

# 查看本地權(quán)限
show grants for 'test0'@'localhost';
回顯:[GRANT ALL PRIVILEGES ON `pydb`.* TO 'test0'@'localhost' WITH GRANT OPTION]

# 查看遠(yuǎn)程權(quán)限
show grants for 'test0'@'%';
回顯:[GRANT ALL PRIVILEGES ON `pydb`.* TO 'test0'@'%' WITH GRANT OPTION]
權(quán)限都添加成功了,現(xiàn)在本地客戶端和遠(yuǎn)程客戶端都擁有了登陸test0用戶操作pydb數(shù)據(jù)庫下的所有表的權(quán)限了。

# 賦權(quán)命令解釋
grant: 賦權(quán)關(guān)鍵字
all privileges: 賦權(quán)類型,all privileges表示所有權(quán)限。也可以賦值具體的權(quán)限如:select、update、create、drop等。
on: 表示權(quán)限要賦給哪個數(shù)據(jù)庫的哪個表,*.* 表示所有數(shù)據(jù)庫的所有表。
to: 表示權(quán)限要賦給哪個用戶,格式:”用戶名”@”登錄IP或域名”。localhost表示本機(jī)客戶端可登錄此用戶, %表示任何主機(jī)客戶端都可以登錄此用戶,如果配的是具體ip例如'用戶名'@'192.168.113',表示只允許192.168.113這個主機(jī)客戶端登錄此用戶。 也可以配置IP段例如'用戶名'@'192.168.%'
identified by: 設(shè)置此用戶的登錄密碼,也可以不設(shè)置。
with grant option: 表示允許此用戶將自己的權(quán)限授權(quán)給其它用戶。
注意: grant添加的權(quán)限是自動疊加的,比如第一次添加了select權(quán)限后面再添加insert權(quán)限,那么此用戶就擁有select和insert權(quán)限。如果此用戶已經(jīng)擁有所有權(quán)限,再添加select權(quán)限則此用戶還是擁有all privileges所有權(quán)限。

# 移除權(quán)限
revoke insert on '數(shù)據(jù)庫名'.'表名' from '用戶名'@'IP地址';
# 例如移除insert權(quán)限:
revoke insert on pydb.* from 'test0'@'localhost';

# 例如所有權(quán)限:
revoke all on pydb.* from 'test0'@'localhost';

# 刷新權(quán)限
mysql> flush privileges;

所有權(quán)限包含很多:[SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER]

實際使用過程中不建議賦所有權(quán)限,需要哪個賦哪個就行。

關(guān)于權(quán)限的詳情請參考mysql官方說明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

3.5 用戶和數(shù)據(jù)庫及表關(guān)系圖

4. 數(shù)據(jù)庫的備份及恢復(fù)

# 備份所有數(shù)據(jù)庫:
mysqldump -uroot -p --all-databases > all.db

# 備份指定數(shù)據(jù)庫:
mysqldump -uroot -p pydb > test1.db

# 備份指定數(shù)據(jù)庫的某些表
mysqldump -uroot -p pydb 表名1 表名2 表名n > test2.db

# 備份指定數(shù)據(jù)庫排除某些表(排除表1 和 表2)
mysqldump -uroot -p pydb --ignore-table=pydb.表1 --ignore-table=pydb.表2 > test3.db

# 創(chuàng)建test數(shù)據(jù)庫
create database test charset=utf8; 

# 恢復(fù)備份數(shù)據(jù),導(dǎo)入的數(shù)據(jù)庫必須存在
mysql -u root -p test < test1.db

5. Navicat 遠(yuǎn)程連接數(shù)據(jù)庫

5.1 修改本地監(jiān)聽地址

# 查看監(jiān)聽
netstat -an |grep 3306
# 前監(jiān)聽的是本地回環(huán)地址:tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 
# 遠(yuǎn)程客戶端無法訪問

# 修改MySQL的本地監(jiān)聽地址
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改bind-address 的值為 bind-address = 0.0.0.0保存退出。
也可以修改為本機(jī)ip,例如:bind-address = 192.168.111.10

# 重啟mysql數(shù)據(jù)庫
sudo service mysql restart

# 在遠(yuǎn)程客戶端機(jī)器上測試下網(wǎng)絡(luò),telnet成功說明網(wǎng)絡(luò)沒問題
telnet 192.168.111.10 3306

# 注意:阿里云服務(wù)器有端口限制,需要去配置下端口訪問規(guī)則開放3306端口
網(wǎng)址:[https://homenew.console.aliyun.com/](https://homenew.console.aliyun.com/)

5.2 Navicat 遠(yuǎn)程連接

自行下載Navicat并安裝。

如果連接失敗則進(jìn)行以下測試:
[192.168.111.10]是你的mysql服務(wù)器ip地址
1.測試網(wǎng)絡(luò)和端口
telnet 192.168.111.10 3306

2.查看服務(wù)器監(jiān)聽地址
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0

3.查看用戶是否有遠(yuǎn)程訪問權(quán)限及密碼驗證插件
select user,host,plugin from user;
登陸用戶host的值: % 或 遠(yuǎn)程客戶端ip
登陸用戶plugin的值: mysql_native_password 
mysql5.7版本的密碼驗證插件是 mysql_native_password 

# 添加用戶訪問權(quán)限及設(shè)定密碼驗證插件
grant all privileges on pydb.* to 'test0'@'%' identified with mysql_native_password by 'test0111';

# 如果用戶遠(yuǎn)程訪問權(quán)限存在,密碼驗證插件不對,可只修改密碼驗證插件
alter user 'test0'@'%' identified with mysql_native_password by '111222333';

# 刷新權(quán)限
mysql> flush privileges;

6. 卸載mysql

# 卸載mysql:
1.sudo apt-get autoremove mysql* --purge
2.sudo apt-get remove mysql-server
3.sudo apt-get remove mysql-common

# 清理殘留數(shù)據(jù) 
sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P 
sudo rm -rf /etc/mysql/ 
sudo rm -rf /var/lib/mysql

# 檢查是否刪除完畢
whereis mysql
sudo find / -name mysql

本博文記錄內(nèi)容我都自己操作過,如能幫助到需要的小伙伴,我將感到很榮幸,如有錯誤之處歡迎指正。

到此這篇關(guān)于Ubuntu 20.04 安裝和配置MySql5.7的文章就介紹到這了,更多相關(guān)Ubuntu 20.04 安裝MySql5.7內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 分析MySQL拋出異常的幾種常見解決方式

    分析MySQL拋出異常的幾種常見解決方式

    在本文中,總結(jié)了開發(fā)過程中最為常見的幾種 MySQL 拋出的異常以及如何解決,包括高版本驅(qū)動的問題、時區(qū)配置問題、SSL 連接問題等。于我個人而言,這一篇足以解決目前項目中所有遇到的MySQL問題。同時,也希望本文能對 MySQL 數(shù)據(jù)庫初學(xué)者有一定的引導(dǎo)入門作用。
    2021-05-05
  • MySql分頁時使用limit+order by會出現(xiàn)數(shù)據(jù)重復(fù)問題解決

    MySql分頁時使用limit+order by會出現(xiàn)數(shù)據(jù)重復(fù)問題解決

    在MySQL中我們通常會采用limit來進(jìn)行翻頁查詢,當(dāng)limit遇到 order by的時候會出現(xiàn)數(shù)據(jù)重復(fù)問題,本文就來記錄一下,感興趣的可以了解一下
    2021-08-08
  • linux下備份MYSQL數(shù)據(jù)庫的方法

    linux下備份MYSQL數(shù)據(jù)庫的方法

    這是一個眾所周知的事實,對你運行中的網(wǎng)站的MySQL數(shù)據(jù)庫備份是極為重要的。
    2010-02-02
  • mysql8.0.11 winx64手動安裝配置教程

    mysql8.0.11 winx64手動安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql8.0.11 winx64手動安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json

    mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json

    MySQL里面保存數(shù)據(jù)有時候會把一些雜亂且不常用的時候丟進(jìn)一個json字段里面,那么如何查詢數(shù)據(jù)庫里的json呢以及mysql存儲json注意那些格式呢?接下來通過本文給大家詳細(xì)介紹,需要的朋友參考下
    2017-03-03
  • mysql 判斷是否為子集的方法步驟

    mysql 判斷是否為子集的方法步驟

    這篇文章主要介紹了mysql 判斷是否為子集的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • MySQL學(xué)習(xí)之?dāng)?shù)據(jù)更新操作詳解

    MySQL學(xué)習(xí)之?dāng)?shù)據(jù)更新操作詳解

    這篇文章我們將學(xué)習(xí)一下用于數(shù)據(jù)更改的 “UPDATE” 語句, “UPDATE” 語句也是屬于 DML 這一類數(shù)據(jù)庫操作語言,感興趣的可以了解一下
    2022-08-08
  • Mysql在線回收undo表空間實戰(zhàn)記錄

    Mysql在線回收undo表空間實戰(zhàn)記錄

    這篇文章主要給大家介紹了關(guān)于Mysql在線回收undo表空間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 揭秘SQL優(yōu)化技巧 改善數(shù)據(jù)庫性能

    揭秘SQL優(yōu)化技巧 改善數(shù)據(jù)庫性能

    這篇文章是以 MySQL 為背景,很多內(nèi)容同時適用于其他關(guān)系型數(shù)據(jù)庫,需要有一些索引知識為基礎(chǔ),重點講述如何優(yōu)化SQL,來提高數(shù)據(jù)庫的性能
    2012-01-01
  • Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式

    Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式

    這篇文章主要介紹了Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論