您现在的位置是:网站首页> 编程资料编程资料

Ubuntu 20.04 安装和配置MySql5.7的详细教程_Mysql_

2023-05-27 772人已围观

简介 Ubuntu 20.04 安装和配置MySql5.7的详细教程_Mysql_

1. Ubuntu换源

ubuntu 20.04系统自带源直接安装是MySQL 8.0,我要安装MySQL 5.7的版本的所以先进行换源。

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内容清空,然后选择一个源粘贴到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 方式安装

这种方式需要服务器能联网

 # 执行下面安装命令 # 安装mysql5.7服务端 sudo apt-get install mysql-server-5.7 # 安装mysql5.7客户端 sudo apt-get install mysql-client-5.7 # 使用c/c++等语言操作mysql的动态链接库,如果不需要可不安装 sudo apt install libmysqlclient-dev

安装时需要输入两次mysql root用户的密码(此密码需要记住)


安装完成后查看mysql版本和服务

 mysql -V # 查看mysql版本 netstat -tap | grep mysql # 查看mysql服务

如上图所示说明安装成功。

2.2 deb安装包方式安装

这种安装方式服务器能联网或不能联网都可以

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

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

 提取码: gxfk

1)下载deb安装包

安装包可以在服务器里直接获取或者自己去官网下载

 # 在服务器里直接获取(服务器需要联网) wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar # 也可以直接将网址粘贴到浏览器下载安装压缩包 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

自己去官网下载,选择好mysql版本和操作系统版本然后点击下载。

网址:https://downloads.mysql.com/archives/community/

2)使用deb包进行安装

将下载好的mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar压缩包导入linux服务器,然后进行下面的操作。

 # 新建目录 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个测试相关的包 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进行安装

 # 用dpkg进行安装 sudo dpkg -i mysql-*.deb

结果报错了_^^

报错的意思是缺少 2个包 libtinfo5libmecab2,那就安装这两个包,如果还缺少其他包,按照下面的步骤安装即可。

 # 服务器能联网时直接安装 sudo apt-get install libtinfo5 sudo apt-get install libmecab2

服务器不能联网时就自己去下载然后上传到服务器

下载网址 https://ubuntu.pkgs.org/

 # 下载软件包需要区分硬件架构 [admin0@Ubuntu20:/home/admin0]$ uname -m # 查看硬件架构 x86_64 # x86_64就是AMD64

将Binary Package对应的网址复制到浏览器即可下载,然后将下载好的 libtinfo5libmecab2包导入服务器进行安装。

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

 # 再次用dpkg进行安装 cd mysql5.7.31 sudo dpkg -i mysql-*.deb

提示输入2次root密码,然后安装成功

安装完成后查看mysql版本和服务

 mysql -V # 查看mysql版本 netstat -tap | grep mysql # 查看mysql服务

如上图所示说明安装成功。

3.新建用户并赋权

3.1 未设置或忘了密码解决办法

 # 停止mysql服务 sudo service mysql stop # 修改MySQL的登录设置,暂时不校验登陆密码 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数据库 sudo service mysql restart # 免密登陆mysql数据库 mysql -u root mysql # 修改root密码 update mysql.user set authentication_string=password('111222333') where user='root'; # 刷新生效 flush privileges; # 还原MySQL的登录设置 # 将[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数据库 sudo service mysql restart # 使用新密码登陆mysql mysql -u用户名 -p密码 数据库名 # 例如: mysql -uroot -p111222333 mysql

3.2 登陆mysql查看信息

 # 直接登陆mysql mysql -u用户名 -p密码 数据库名 # 例如: mysql -uroot -p111222333 mysql # 先登陆后面再输入密码和选择数据库 mysql -u root -p Enter password: “root用户密码” mysql> use mysql # 选择要操作的数据库 # 切换数据库 use 数据库名; # 查看所有数据库 show databases; # 查看登陆数据库中所有的表 show tables; # 查看数据表结构 desc 表名; # 查看登陆用户名 select user(); # 查看登陆数据库库名 select database(); # 查看版本 select version(); # 显示当前时间 select now(); # 查看所有用户的 用户名、可登陆主机、身份验证插件、密码 select user,host,plugin,authentication_string from user; # 查看当前登录用户权限 show grants; # 查看任意用户权限(后面说权限的具体含义) show grants for root@localhost;

3.3 创建及删除数据库和用户

 # 使用root用户登录数据库 mysql -uroot -p111222333 mysql # 创建数据库 create database "数据库名" charset="数据库编码"; # 例如: create database pydb charset=utf8; # 创建数据库用户 create user "用户名"@"IP地址" identified by "密码"; # 例如: create user 'test0'@'localhost' identified by 'test0111'; # 删除数据 drop database [数据库名]; # 例如: drop database pydb; # 删除数据库用户 drop user '用户名'@'ip地址'; # 例如: drop user 'test0'@'localhost';

3.4 给用户赋权限

 # 查看用户test0的权限 show grants for test0@localhost; 显示:[GRANT USAGE ON *.* TO 'test0'@'localhost'] USAGE: 表示无权限用户。 # 用test0用户登录pydb数据库 mysql -utest0 -ptest0111 pydb 报错提示无权操作:[ERROR 1044 (42000): Access denied for user 'test0'@'localhost' to database 'pydb'] # 使用root用户给test0用户赋权 grant all privileges on '数据库名'.'表名' to '用户名'@'IP地址' identified by "密码" with grant option; # 例如设置本地客户端访问此用户: mysql> grant all privileges on pydb.* to 'test0'@'localhost' identified by 'test0111' with grant option; # 设置远程任意客户端访问此用户: mysql> grant all privileges on pydb.* to 'test0'@'%' with grant option; # 刷新权限 mysql> flush privileges; # 查看本地权限 show grants for 'test0
                
                

-六神源码网