在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式。首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包。安装idea,使用的是tar.gz;那有没有别的安装方式呢?

1.安装方式介绍

Linux系的软件包格式主要有:rpm、deb、tar.gz;

rpm:主要在红帽LINUX、SUSE、Fedora下安装,在Ubuntu中无法识别;

deb:主要应用于Debian系列,包括Ubuntu等发行版上,在Ubuntu中双击deb包就可以进入自动安装进程;

tar.gz:在所有的Linux版本中都能使用,纯手工配置,最酸爽的一种,但是也是让我们最深知安装过程中做了什么的方式,所以这也是我最喜欢的一种方式。这也是我们今天安装MySQL的方式。

有同学可能会讲,不对,我还见过一种安装形式,就是apt和yum安装!

注意了,apt和yum可不是安装包的格式,而是安装的方式,比如apt,是指使用网络在线安装。我们会在服务器上准备好deb包,然后通过apt命令就可以下载deb包并进行安装。apt适用于Ubuntu, yum则适用于redhat和centos下。

关于apt和yum,先tip一下,后面安装mysql过程中的某个小依赖包,我打算使用apt的方式来安装,给大家演示下apt,顺便下午也会跟大家讲一下什么是安装源。Tip:

apt-get可以用于安装deb包:
安装:apt-get install <package_name>
卸载:apt-get remove <package_name>
更新:apt-get update <package_name>
yum可以用于安装rpm包:
安装:yum install <package_name>
卸载:yum remove <package_name>
更新:yum update <package_name>

2.MySQL下载

去官网download。在MySQL的官方站点,如果我们选择操作系统为Ubuntu,默认只会出现deb的安装包。所以操作系统我们要选择generic,如下:

官方提供了安装文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html,不过这针对有一定linux基础的同学。如果你是初学者,尽量跟着我来。

3.安装libaio的apt安装方式

官网提到了安装MySQL,要使用libaio框架,按照介绍,简单,在线安装之:

apt-get install libaio1

然后,呵呵呵,一串错误出现了。大概的样子长这样:

……
错误: http://cn.archive.ubuntu.com/ubuntu bionic/main amd64 libaio1 amd64 0.3.110-5
Forbidden [IP: 111.11.80.233 ]
E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.110-5_amd64.deb 403 Forbidden [IP: 111.11.80.233 80]
E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?
luminji@luminji-virtual-machine:/$ sudo apt-get update
错误: http://cn.archive.ubuntu.com/ubuntu bionic InRelease
Forbidden [IP: 111.11.80.233 ]
正在读取软件包列表... 完成
E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/bionic/InRelease 403 Forbidden [IP: 111.11.80.233 80]
E: 仓库 “http://cn.archive.ubuntu.com/ubuntu bionic InRelease” 的签名不再生效。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure() 手册以了解仓库创建和用户配置方面的细节。
luminji@luminji-virtual-machine:/$

这是为什么呐?

apt是在线安装,但是刚才我们看的命令只有一个apt-get install,没有告诉我们去哪里下载啊!这个下载地址隐藏在:/etc/apt/sources-list文件中。而Ubuntu默认的下载源因为各种原因默认是不可能用的哦。那怎么办?最好的办法,当然是换一个能用的apt源。

4.更新系统源

在更新系统源之前,为了保险,首先备份/etc/apt/sources-list,接着,修改内容为:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main multiverse restricted universe

这个清华的apt源,可用。我们也可以找到其它的一些源。

然后,更新之:

sudo apt-get update

再然后,让我们install吧。

5.Libaio的离线安装方式

既然能在线安装,那就一定也能离线安装。libaio是有deb安装包的。我们可以下载回来以deb的方式安装,如下:

sudo dpkg -i libaio1_0.3.110-2_amd64.deb

结果如下,就代表成功了

6.安装MySQL

解压:

tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

Move到/usr/local下:

mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local

使用ln创建软连接:

ln -s /usr/local/ mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql

注意,上面这两步的路径不要改,包括创建软连接也这么创建,因为mysql的默认配置参数中,这两个地址都是默认地址。如果安装到别处,要修改不少地方。

添加用户组

sudo groupadd mysql

添加用户

sudo useradd -r -g mysql -s /bin/false mysql

手动创建mysql-files文件夹,然后修改权限,

sudo chmod 750 mysql-files

sudo chown -R mysql .

sudo chgrp -R mysql .

然后手动初始化data文件夹,如下:

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

注意,敲完这个命令后,在最后一行会出现mysql的默认登录用户root的默认密码,加下图,这个密码是我们在第一次登录MySQL的时候要用到的:

到了这一步,基本就是大功告成了~~

7.测试MySQL

启动MySQL,

sudo bin/mysqld_safe --user=mysql &

登录MySQL,我们首先要新开一个客户端,然后到mysql安装目录的bin目录下,敲入命令:

mysql -uroot -p

输入上图中的密码,登录成功之后,让我们第一件事情就是修改初始密码,如下:

mysql> SET PASSWORD = PASSWORD('新密码');
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> flush privileges;

然后,顺便查一下mysql默认的数据库吧:

show databases;

注意哦,每一条sql语句后面都带英文的;号。

以上步骤见图如下

8.看看MySQL占了哪个端口号

在5.7.20以后的版本之后,都不自带默认的配置文件了,那作为强迫症的你怎么查看mysql用了哪个端口呢?当然是使用netstat命令了。

咳咳,默认Ubuntu没有这个命令,我们还需要安装net-tools工具。

9.安装net-tools

敲命令吧:

sudo apt-get install net-tools

安装完毕,继而命令,

netstat -ntlp

看到3306了没有,bingo

10.Mysql的配置文件

默认的3306端口号当然仍旧是可以更改的。上面我们也说过了,在5.7.20版本之后的安装包里默认是没有配置文件的,但是我们可以手动添加一个,在mysql根目录下,创建my.cnf,内容如下:

[mysql]
#客户端默认字符集
default-character-set=utf8
[mysqld]
#设置端口
port =
#安装目录
basedir=/usr/local/mysql
#数据的存放目录
datadir=/usr/local/mysql/data
#最大连接数
max_connections=
# 默认字符集
character-set-server=utf8
#默认存储引擎
default-storage-engine=INNODB

11.配置服务自动启动

然后,为了不要每次重启系统,我们都要手动启动mysql,我们还要将mysql丢到系统服务中。

将两个配置文件copy到系统文件夹中,如下:

sudo cp /usr/local/mysql/my.cnf /etc/my.cnf

sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

继而,添加服务自启动

update-rc.d mysql.server defaults

update-rc.d mysql.server enable

继而,在全局配置文件/etc/profile的最后加上,

export PATH=$PATH:/usr/local/mysql/bin

现在,重启我们的Ubuntu,直接进入命令行:

mysql -uroot -p

试试看能不能进入哦。

顺便,关于服务的三个命令大家牢记一下:

#查看服务状态
sudo service mysql.server status
#服务启动
sudo service mysql.server start
#服务停止
sudo service mysql.server stop

12.Navicat安装

去官网下载正版:https://www.navicat.com/en/download/navicat-for-mysql

下载回来还是tar.gz,navicat121_mysql_en_x64.tar.gz,

解压到opt下,然后./start_navicat启动,这个时候会提示我们安装wine_gecko 和 wine-mono 软件包。它们分别用于运行依赖于 Internet Explorer 和 .NET 的程序,分两步,

如下1:

如下2:

然后才能进入Navicat,如下:

至于有人说不行啊,只有半个月的试用期。这个,对于现在的你来说,早就已经是个小问题了:)。

华丽分割线(以下是广告时间)

===========================================================

1:最课程JavaEE+互联网分布式新技术开班进行中,你想学习不一样的Java开发技术,来http://www.zuikc.com看看吧;

2:最课程陆敏技在云栖社区与Java编码标准制定者阿里孤尽带来的Java专题:https://yq.aliyun.com/promotion/651

更多技术文章和开班信息请加入,

QQ群:

Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat的更多相关文章

  1. Java全栈程序员之03:Ubuntu下安装idea

    JetBrains的产品我曾经用过很长一段时间,它们是resharper和dotcover.VS号称宇宙最强IDE,直到它遇到了resharper,我们才知道,原来vs可以更好.DotCover是一个 ...

  2. Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

    在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 ...

  3. Java全栈程序员之01:做个Linux下的程序猿

    Windows10正在成为史上口碑最差的Windows系统 (图侵删) 我曾经花了数次1小时去寻找解决方案去关闭自动更新,包括停掉服务.修改注册表等等.但是都没有成功. 微软自身是知道这个问题的,但就 ...

  4. Java全栈程序员之08:MAVEN+JAVA配置

    从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置.这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关.可是最终我们发现,绝大多数的那些配置 ...

  5. Java全栈程序员之05:Ubuntu下安装TOMCAT、集成到IDEA

    使用idea绝不是开发一个Hello World这么简单,现在我们要使用idea进行企业级开发(也就是JavaEE)的准备了,那么首先,我们就得有一个web应用服务器.选什么呢?当然首选是大名鼎鼎的T ...

  6. Java全栈程序员之09:IDEA+GitHub

    GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装 ...

  7. Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目

    在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等.那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境. 在这里,我们要完成 ...

  8. Java全栈程序员之06:IDEA中MAVEN项目依赖及运行

    MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...

  9. Ubuntu下安装MySQL 5.6.23

    Ubuntu下安装MySQL 5.6.23 1.下载相应Linux-generic的源代码包.解压,将解压后的文件夹重命名为mysql.移动到/usr/local文件夹下: tar –xzf mysq ...

随机推荐

  1. Lodash JavaScript 实用工具库

    地址:https://www.lodashjs.com/ Lodash 是一个一致性.模块化.高性能的 JavaScript 实用工具库.

  2. 性能测试三:jmeter进阶之图形插件

    一.图形化插件的使用 使用Jmeter插件可以更直观的查看tps和响应时间 插件官网: http://jmeter-plugins.org/downloads/all 第一种方法,找到需要的插件下载j ...

  3. BOM下的属性和方法---下

    继续BOM下的属性和方法---上 代码示例(亲测)2:   <title>location对象的属性</title> <script> //服务器环境我再此次演示中 ...

  4. python 全栈开发,Day30(第一次面向对象考试)

    月考题: python 全栈11期月考题 一 基础知识:(70分) 1.文件操作有哪些模式?请简述各模式的作用(2分) 2.详细说明tuple.list.dict的用法,以及它们的特点(3分) 3.解 ...

  5. python爬取京东价格

    昨天准备爬取一个京东商品的价格,正则写好了一直是空的 后来我去页面里面看了下,价格标签里果然是空的 百度了下,大家都说是js来控制显示价格的 于是去抓包试试,找到了一条mgets的请求 中间很多参数不 ...

  6. [NOI2012]骑行川藏(未完成)

    题解: 满分又是拉格朗日啥的 以后再学 自己对于n=2猜了个三分 然后对拍了一下发现是对的

  7. 关于SSH不能连接及报错的问题总结

    前言 此文不涉及到因网络.防火墙设备而导致的SSH不能访问.运维常见问题,这里不做过多的讲解,主要讲讲出了大家所知道的,还有其他什么原因会导致SSH无法访问呢?好了,那么,如果想知道的话,那就继续往下 ...

  8. vue中mixin的一点理解

    vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情况下引入组件有什么区别?     ...

  9. 程序员之路:python3+PyQt5+pycharm桌面GUI开发(转)

    程序员之路:python3+PyQt5+pycharm桌面GUI开发 http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错 ...

  10. 条件随机场之CRF++源码详解-开篇

    介绍 最近在用条件随机场做切分标注相关的工作,系统学习了下条件随机场模型.能够理解推导过程,但还是比较抽象.因此想研究下模型实现的具体过程,比如:1) 状态特征和转移特征具体是什么以及如何构造 2)前 ...