Linux(Ubuntu)下MySQL5.7的安装

文章目录


1.看系统本身有没有MySQL

mariadb也是mysql所以要先检查一下系统有没有MySQL

我这台机子是新机子,所以没有不用卸载

如果电脑上有mysql的话,就和下面一样

我们需要先切换为root

cpp 复制代码
systemctl stop mysqld 停止mysql
rpm -qa | grep mysql  查找mysql的安装包
然后卸载掉查找到的安装包即可

ls /etc/my.cnf     查看配置文件还在不在,卸载不会卸载这个
ls /var/lib/mysql/   查看残留文件

2.安装MySQL

一次按以下命令:
这些命令执行时可能有一些奇怪的警告,不用管,继续执行下一条!

cpp 复制代码
sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar
sudo tar -xvf mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar
sudo apt-get update
sudo apt-get install ./libmysql*
sudo apt-get install libtinfo5
sudo apt-get install ./mysql-community-client_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-client_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-community-server_5.7.29-1ubuntu18.04_amd64.deb
sudo apt-get install ./mysql-server_5.7.29-1ubuntu18.04_amd64.deb 

执行sudo apt-get install ./mysql-community-server_5.7.29-1ubuntu18.04_amd64.deb时会弹出:提示设置MySQL的密码,用户名默认root

cpp 复制代码
systemctl status mysql.service//启动


3.登录MySQL

由于刚开始还没有学MySQL的一些命令,所以无法进行用户管理操作。

我们能先登陆上去就行!

方法一(不行就下一个):MySQL5.7以前的版本可支持:

cpp 复制代码
#获取临时root密码
[用户]$ sudo grep 'temporary password' /var/log/mysqld.log
2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for
root@localhost: yLMalT:v+5l*
#使⽤临时密码登录
[用户]$ mysql -uroot -p
Enter password:

#判断修改密码时候新密码是否符合当前的策略,不满⾜报错,不让修改,关闭它
#安全强度,默认为中,即1,要求必须包含 数字、符号、⼤⼩写字⺟,⻓度⾄少为8位
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
#密码最⼩⻓度
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
#修改本地登录密码,暂不授权远程登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
#如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码

方法二(不行就下一个):

cpp 复制代码
# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆⼀下
 mysql -uroot -p
回车

大概率还是不行

方法三:

密码就是前面这里我们设置的密码!


此时mysql安装完成了,但是不能为我们的程序提供服务(使用连接工具现在是连接不上的)。 因为还需要配置远程连接,使我们可以远程登录才可以。

4.修改配置文件my.cnf/mysqld.cnf

cpp 复制代码
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf 打开配置文件

这里

cpp 复制代码
character-set-server=utf8   #不设置这个打不了中文
default-storage-engine=innodb  #引擎用的最多的就是innodb


修改过后重启即可

cpp 复制代码
systemctl restart mysql

5.开启远程访问功能

5.1 允许其他主机通过root访问数据库

进入mysql库,查看user表。 表中host、user字段标识了可以访问数据库的主机和用户。

cpp 复制代码
mysql -u root -p
输入密码
use mysql;
select User,Host from user;

默认情况下 mysql 只接受本地访问,需要执行 mysql 语句授权外网用户访问。例如下面的数据就表示只能用本地主机通过root用户访问数据库。为了让数据库支持远程主机访问,有两种方法可以开启远程访问功能。

(1)第一种(改表法):

修改host字段的值,将localhost修改成需要远程连接数据库的ip地址,或者直接修改成%,使所有主机都可以通过root用户访问数据库。

以下是将user为root对应的host字段直接修改成%的命令:

cpp 复制代码
update user set host = '%' where user = 'root';

输入命令使修改生效

cpp 复制代码
flush privileges; 

之后再次查看user表,修改成功!

第二种(授权法):

例如,你想root使用mypassword从任何主机连接到mysql服务器的话。

cpp 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.111.23的主机连接到mysql服务器,并使用mypassword作为密码:

cpp 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.111.23' IDENTIFIED BY 
'mypassword' WITH GRANT OPTION;

输入命令使修改生效

cpp 复制代码
flush privileges; 

这两种方法选择一种即可!

5.2 Ubuntu下配置文件修改说明

现在需要配置服务器的接口,从而使服务器能够侦听远程可访问的接口。默认情况下,绑定地址为"127.0.0.1"。

修改位于/etc/mysql/mysql.conf.d/mysqld.cnf 的配置文件,将bind-address=127.0.0.1修改成0.0.0.0,并添加 port = 开放的具体端口号,默认端口号为3306 ,即可实现开放外网访问和自定义端口的目的。(具体参考上面第四点!)

点击 Esc按键进入命令模式,输入 :wq 保存并退出。

重启mysql服务

cpp 复制代码
systemctl restart mysql

重启成功后,就可以使用连接工具连接了!

Navicat是一个广泛使用的数据库管理工具,可用于管理多种数据库系统,如MySQL、MariaDB、Oracle等。

使用ifconfig查看服务器ip地址,使用Navicat与数据库建立连接。

至此 mysql的安装已全部完成 如果有部署在云服务器上的经过上列操作无法访问的话 记得查看后台防火墙端口是否开启

本文后半部分参考:

链接: Ubuntu22部署MySQL5.7详细教程

相关推荐
电鱼智能的电小鱼3 分钟前
EFISH-SBC-RK3588无人机地面基准站项目
linux·网络·嵌入式硬件·机器人·无人机·边缘计算
foo1st3 分钟前
Tomcat Web应用(Ubuntu 18.04.6 LTS)部署笔记
ubuntu·tomcat
电鱼智能的电小鱼9 分钟前
基于 EFISH-SBC-RK3588 的无人机环境感知与数据采集方案
linux·网络·嵌入式硬件·数码相机·无人机·边缘计算
cypking19 分钟前
mysql 安装
数据库·mysql·adb
小诸葛的博客1 小时前
详解Linux中的定时任务管理工具crond
linux·运维·chrome
一默19911 小时前
CentOS 7.9升级OpenSSH到9.9p2
linux·运维·centos
keep intensify1 小时前
Linux常用指令
linux·服务器·php
南客先生2 小时前
MySQL索引优化、SQL分析与运行原理 - Java架构师面试实战
mysql·mvc·锁机制·sql分析·事务隔离级别·索引优化
带电的小王2 小时前
sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
linux·语音识别·实时音视频·sherpa-ncnn
husterlichf2 小时前
MYSQL 常用字符串函数 和 时间函数详解
数据库·sql·mysql