一、下载
1、打开mysql官方下载网页:https://dev.mysql.com/downloads/
2、选择 MySQL Community Server
3、随后我们来到了下载页面,先选择我们的操作系统版本,我是ubuntu18.04 64-bit
,如下图所示
我刻意没有截图下面的那些各种各样的软件包,那是因为选择安装最新的8.0x,官方已经强力推荐使用包管理工具来安装了!所以我们没必要去看那些名字复杂,乱七八糟的各种安装包了!
4、点击推荐我们使用apt下载mysql的那个企鹅图片,我们会跳转到apt下载mysql的专栏网页。
5、点击download,下载mysql-apt-config_0.8.14-1_all.deb
下载好mysql-apt-config_0.8.13-1_all.deb
后,你如果看不懂官方的操作文档,或者对其内部用到的东西感兴趣,那么看下面的内容是最好的!
二、开始安装
step 1、将下载好的mysql-apt-config_0.8.13-1_all.deb
移动到linux中,并在该路径下输入命令:
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
随后会弹出一个配置界面,除非你有特殊需求,不然直接选择OK
即可,最后你会得到如下输出:
(Reading database ... 224799 files and directories currently installed.)
Preparing to unpack mysql-apt-config_0.8.13-1_all.deb ...
Unpacking mysql-apt-config (0.8.13-1) over (0.8.13-1) ...
Setting up mysql-apt-config (0.8.13-1) ...
Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package mysql-apt-config)
OK
[讲解]: sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
这一步是使用dpkg工具运行我们的mysql-config的程序,dpkg是ubuntu这类linux系统的底层包管理工具,也负责管理.deb结果的程序包。 mysql-cofig弹出的配置界面用于选择你要安装的是什么版本的mysql以及想要安装哪些mysql插件,选择完毕后,这个工具会生成一个类似source.list
的东西,内部记录了mysql的apt软件仓库的服务器地址,用于后续的apt工具可以正常的安装mysql,会告知apt工具应该去检索哪些软件仓库的软件包。当然这个步骤其实也可以手动来添加这些apt的相关配置,如果你对apt的软件仓库配置非常熟悉,那么可以自己尝试,或者从这篇文档开始https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#repo-qg-apt-repo-manual-setup
在执行上面的过程中,我们会看到下面的界面,选择第一个,我们要安装MySQL server
接下来还会看到,选择第二个,MySQL8.0
执行完后,接下来还会看到,选择第一个,我们执行MySQL8.0的配置。
所有都选完了,选ok,否则会一直循环让你选。
step 2、
sudo apt-get update
apt-get就开始重新更新软件仓库服务器内的所有包文件索引,在这里使用该命令的目的是,拉取mysql的apt软件仓库的服务器上的包索引列表。
[讲解]: apt工具是dpkg工具的上层软件,它拥有更强的包管理功能;它是利用自身软件仓库(source.list)内指定的源服务器地址内包含的包索引列表来正常的安装我们要安装的软件应用。这一步骤也正是在更新这些包索引列表,目的是添加我们刚刚引入的mysql的源软件仓库服务器内包含的包索引列表。可以把这个操作类比成电脑管家的查看更新。完成这步骤后,apt工具就会知道如何去下载安装我们的mysql了!所以这个步骤是使用apt安装mysql的关键步骤,是必须执行的哦!
step 3、
sudo apt-get install mysql-server
在安装过程中,我们输入一下root密码
下面再安装过程中,我们会遇到让我们选择密码的插件,我推荐第2个,也就是兼容模式,如果选择第一个的话,我们可能会再安装完成后无法启动Mysql服务。
选择完成后,静静等待安装完成即可。
4、看到如下输出,恭喜你安装成功!(入坑成功!)
emitting double-array: 100% |###########################################|
reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316
emitting matrix : 100% |###########################################|
done!
update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up mysql-community-server (8.0.16-2ubuntu18.04) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Setting up mysql-server (8.0.16-2ubuntu18.04) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
6、使用sudo service mysql status
,查看mysql目前的状态,输出如下
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-06-14 11:06:40 CST; 21s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 18991 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 19030 (mysqld)
Status: "SERVER_OPERATING"
Tasks: 39 (limit: 4915)
CGroup: /system.slice/mysql.service
└─19030 /usr/sbin/mysqld
6月 14 11:06:35 zazalu-ThinkPad-E480 systemd[1]: Starting MySQL Community Server...
6月 14 11:06:40 zazalu-ThinkPad-E480 systemd[1]: Started MySQL Community Server.
mysql的安装程序真的越来越傻瓜了!因为它不仅在安装完后自动运行了mysql,同时它还把它搞成了一个service,这样就可以在开机的时候自启动了!
三、其他控制命令
1、关闭mysql,这里推荐如下命令,也是官方推荐的,当然你kill进程也是莫得问题的
sudo service mysql stop
2、启动mysql
sudo service mysql start
3、重启mysql
sudo service mysql restart
四、卸载
1、由于使用apt安装,所以卸载也会变得及其傻瓜式,使用如下命令即可
sudo apt-get remove mysql-server
2、有些人喜欢下一些mysql的插件来增强mysql的功能,使用如下命令卸载这些插件
sudo apt-get autoremove
或者指定包名
sudo apt-get remove package-name
不知道有哪些包,先用如下命令查看
dpkg -l | grep mysql | grep ii
以上转自:https://zazalu.space/2019/06/14/ubuntu18-04%E5%AE%89%E8%A3%85mysql8-0-16-Community/
五、安装使用过程中的报错
我在自己按照上面不步骤安装后,还遇到了一些其他问题。贴出来供大家参考:
报错1:
* Starting MySQL database server mysqld
No directory, logging in with HOME=/
这个是由于mysql日志输出的目录没有权限导致的。
解决方法:
# 停止mysql服务
sudo service mysql stop
# 修改权限
sudo usermod -d /var/lib/mysql/ mysql
# 重启mysql服务
sudo service mysql start
报错2:
* Starting MySQL database server mysqld [fail]
网上查了方法:
sudo chown -R mysql:mysql /var/lib/mysql
service mysql start
但是发现还是不行,起不来,通过命令查看mysql日志
>> cat /var/log/mysql/error.log
Another mysqld server running on port 3306 error [closed]
发现是3306端口被占用了,因为我是在wsl上的ubuntu,我windows上也运行着mysql,在mysql安装目录的bin目录下,运行cmd,执行关闭mysql的命令
E:\DevelopSoftware\MySQL\MySQL Server 8.0\bin>mysqladmin -uroot shutdown -p
报错3:
我想现在应该可以正常启动了吧,结果还是fail!气人!
查看错误日志,发现报错:
unknown variable 'log-syslog=1'
继续查找解决方法:
将文件/etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf中的内容删掉或注释掉
[mysqld_safe]
syslog
改为:
[mysqld_safe]
#syslog
再次启动,终于成功了!