官方安装教程,各种系统的安装都有:https://dev.mysql.com/doc/refman/8.0/en/installing.html
下载地址:https://dev.mysql.com/downloads/mysql/
点击上图红框的地方,可以看到这也是推荐的下载方式,点击后出现如下图:
如上图,2.4M的是一个Web安装器,真正的MySQL在运行Web安装器时再下载,而450.7M的则是已经包含MySQL在里面了,运行时就是直接安装了,所以一般下载450.7M的,点击下载后,出现如下界面:
这里提示要登录,也可以选择红框处的“No thanks, just start my download”不用登录,直接下载。
双击安装包,在出现的界面中选择“Custom”来自定义安装,不要选择"Developer Default",这样的话会安装很多东西,比如"MySQL Workbench"、"MySQL for Visual Studio“等,这些开发工具我们不用的话可以不装的。选择”Custom“后点击“Next”,如下:
如上图,选择安装一个组件就可以了,然后点击“Next”,如下图:
如图,点击“Execute”,如下:
组件安装后在前面会显示一个绿勾,点击“Next”,如下:
继续 点击“Next”进入到配置界面,如下:
这个界面保持默认,点击“Next”,如下:
此页面也是保持默认,“Next”,如下:
这个页面需要设置root账号的密码,需要有小写字母、大写字母、符号、数字,所以密码设置完后最后把密码保存到记事本,以免忘记。点击“Next”,如下:
如上图,此界面保持默认即可,点击“Next”,如下:
安装完成后前面会有绿勾,如下:
点击“Finish”,如下:
点击“Next”,如下:
点击“Finish”即可完成安装。
安装后,我们需要把bin目录设置到环境变量:C:\Program Files\MySQL\MySQL Server 8.0\bin,然后就可以在命令行执行mysql命令了.
查看MySQL版本(注,下面命令中是大写的V,不能用小写),如下:
mysql -V
登录MySQL,如下:
mysql -u root -p
查看数据库,如下:
show databases;
如上图,Name处可以随意输入一个名字,然后在输入root账号的密码,然后下面可以看到“Download missing driver files",提示下载缺少的驱动文件,我们就点击“Download”进行下载,下载完成后如下:
如上图,我们点击“Test Connect”来测试数据库连接,效果如下:
如上图,提示“Succeeded”,说明连接MySQL成功了,点击OK即可,如下:
如上图,没有显示任何数据库,“No schemas selected”表示没有选择数据库,“schemas”这里可以理解为数据库,可以看到有“0 of 4”,说明一共有4个数据库,0个被选择,我们点击“0 of 4”,然后随便选择两个数据库,如下:
可以看到,变成了“2 of 4”,说明选择了两个数据库,而且选择的数据库显示到了下面,点击箭头可以展开查看数据库表,如下:
官方教程:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
cd /home/even
wget "https://repo.mysql.com//mysql-apt-config_0.8.20-1_all.deb"
sudo dpkg -i mysql-apt-config_0.8.20-1_all.deb
sudo apt-get update
sudo apt-get install mysql-server
注:下载的deb路径从https://dev.mysql.com/downloads/repo/apt/获取,安装过程中出现的所有选项选择默认即可。详细安装教程如下:
此时MySQL版本已经来到了8.0.27了。
下载地址:https://dev.mysql.com/downloads/mysql/
如上图,在下载页面中,默认是显示Windows系统的MySQL,需要选择对应的Ubuntu系统,如下:
如上图,我们选择了“Ubuntu Linux”系统,并在系统版本的地方选择“Ubuntu Linux 20.04(x86, 64-bit)”,然后我们点击“MySQL APT Repository”以使用APT的方式来安装,点击后出现下载页面,如下:
如上图,点击“Download”按钮,然后出现另一界面,如下:
点击“No thanks, just start my download."开始下载。下载后把该文件上传到ubuntu服务器,这里我以Windows的子系统Ubuntu举例,可以直接在Windows的资源管理器中打开Ubuntu的目录,直接复制下载的文件到Ubuntu的用户目录中(其他目录没有权限复制不了),如下:
运行Ubuntu系统,默认就是在用户目录下的,如果不是的话需要切换到用户目录,因为前面我们把mysql的文件放到了用户目录,输入ls可以查看当前目录下的文件,如下:
输入安装命令,这里需要有超级用户权限,所以加上了sudo:
sudo dpkg -i mysql-apt-config_0.8.20-1_all.deb
此命令会要求你输入超级用户(即root用户)的密码,如下:
输入密码按后回车,然后就会出现安装界面,如下:
这里的英文翻译如下:
MySQL APT Repo具有MySQL服务器以及各种MySQL组件。您可以选择适当的产品,以选择您希望收到的版本。
一旦你对配置满意,则可以选择最后一个选项’Ok’保存配置,然后运行 ‘apt-get update’ 加载包列表。高级用户可以在以后随时根据自己的需要更改配置。
您希望配置哪个MySQL产品?
如上图,在这个界面中,可以用方向键上下移动,按回车键可以进入某个选项进行选择设置,这里我们不需要做任何改变,使用默认的选择即可,我们使用方向键移到“Ok”上,然后按回车,如下:
选择OK后,效果如下:
然后执行如下命令:
sudo apt-get update
执行效果如下:
加载完成后效果如下:
执行安装命令:
sudo apt-get install mysql-server
执行效果如下:
这个时候应该才是真正去下载MySQL,需要的时间比较长(如果网速慢的话)。下载完成后会出现配置界面,要求输入一个root用户的密码,如下:
密码会要求输入两次,然后出现如下界面:
有道翻译如下:
MySQL 8使用了一种基于改进的基于sha256的密码方法的新的身份验证。所有新的MySQL服务器安装都推荐使用这种方式。这个新身份验证插件需要新版本的连接器和客户端,支持这种新的身份验证方法(缓存sha2密码)。目前使用libmysqlclient21构建的MySQL 8连接器和社区驱动程序支持这种新方法。使用旧版本libmvsalclient的客户端可能无法连接到新服务器。为了保持与旧客户端软件的兼容性,默认的身份验证插件可以设置为遗留值(mysgl本地密码)。只有当需要的第三方软件没有更新以使用新的身份验证方法时,才应该这样做。更改将被写入文件等/msdl/mvsal。会。d/默认-奥思-乌韦里德,cnf安装后,可以通过设置默认的authenticatinn插件服务器设置来更改默认值。选择默认身份验证插件使用强密码加密(推荐)使用旧的认证方法(保留MySQL5.x兼容性)
这里我们选择第一项“Use Strong Password Encryption (RECOMMENDED)",然后按回车开始安装,执行结果如下:
输入mysql -V(大写的V)查看版本,如下:
登录mysql,如下:
百度原因发现mysql服务没有启动,这是因为我在Windows子系统下安装的原因导致的,解决方案可查看“在Windows子系统Ubuntu下安装最新版MySQL”章节即可,这里为了连贯性就讲正常的Ubuntu服务器,因为正常的Ubuntu服务器是没问题的,比如在我的华为云服务器(Ubuntu 18.04 LTS)中,安装到这一步之后应该就可以正常登录MySQL了,mysql服务默认就是启动的,而且在系统重启后也会自动启动,可通过此命令查看运行状态:service mysql status,如下 :
这里看到绿色的“active (running)”即表示mysql service已经在运行了,登录mysql如下:
使用ifconfig查看Ubuntu服务器的ip,如果没有安装net-tools工具的话,会有如下提示:
如上图,提示我们使用“sudo apt install net-tools”命令进行安装,安装完成后再次执行“ifconfig”命令就可以查看到Ubuntu系统的ip了(注:如果是使用VirtualBox安装Ubuntu的话要设置网络为“桥接网卡”模式,这样的ip段就会和Windows电脑的是同网段),如下:
有了ip就可以在DataGrip中连接MySQL了,如下:
如上图,点击“测试连接”时报错了,在DataGrip中使用root账号来连接mysql是连不上的,需要给root账号设置权限才可以(可以查看“DataGrip连接到MySQL使用root账号”章节),对于现实的开发来来说,应该是要创建一个新的用户,然后指定这个用户可以访问哪些数据库,这样的话安全性会好一些,这样我们的root账号和密码就不用交给DataGrip了,而是使用一个权限较小的新创建的用户。之前在学Spring的时候看一篇Spring的官方教程(https://spring.io/guides/gs/accessing-data-mysql/)就是这样教我们连接数据库,如下:
mysql> create database db_example;
mysql> create user 'even'@'%' identified by '123456';
mysql> grant all on db_example.* to 'even'@'%';
这里共3条命令,
然后我们再使用这个even账号来连接db_example数据库就没问题了,如下:
刚安装好MySQL,不进行任何设置的情况下使用DataGrip来连接MySQL,使用root账号是连接不上的,报错如下:
经过百度,发现root账号也是要设置一下权限,设置好权限后就可以在DataGrip上连接MySQL了,而且可以查看所有的数据库。
先在Xshell上连接MySQL,然后执行下面三条命令来设置root的权限:
use mysql;
update user set host = '%' where user = 'root';
flush privileges;
权限设置好之后,在DataGrip中就可以使用root账号来连接了,如下:
连接上之后可以查看到MySQL中的所有数据库,如下:
选择对应的版本:
把下载到的文件使用Xftp上传到服务器的root目录下,如下图:
使用xShell登录服务器,华为云的登录后默认正好也是在root目录下的,接下来的安装操作和Ubuntu 20.04 LTS版本的安装是一样的,就不重复了。
官方教程:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-remove
要卸载 MySQL 服务器和使用 MySQL APT 存储库安装的相关组件,首先使用以下命令删除 MySQL 服务器:
sudo apt-get remove mysql-server
然后,删除与 MySQL 服务器一起自动安装的任何其他软件:
sudo apt-get autoremove
要卸载其他组件,请使用以下命令,替换package-name为要删除的组件的包名称:
sudo apt-get remove package-name
要查看从 MySQL APT 存储库安装的软件包列表,请使用以下命令:
dpkg -l | grep mysql | grep ii
在Windows的子系统Ubuntu中安装MySQL的教程和前面的教程一样,但是安装后启动不了。解决方案如下:
basedir=/usr
datadir=/var/lib/mysql
mysqld_pid_file_path=/var/run/mysqld/mysqld.pid
该文件也可以从我的百度网盘下载,是已经修改好的,可以直接使用,链接:https://pan.baidu.com/s/1HTVzrCp81IQ2v2DDSLJsbw提取码:qjjx
sudo mv mysql /etc/init.d/
sudo chmod +x /etc/init.d/mysql
第一条命令是移动文件,第二条命令是让mysql文件拥有可执行权限。
sudo service mysql start
sudo service mysql stop
启动MySQL服务的效果如下:
sudo service mysql status
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
登录MySQL:自此,Windows子系统Ubuntu下安装最新版本MySQL就完成了。解决方案来自于:https://www.58bits.com/blog/2020/05/03/installing-mysql-80-under-wsl-2-and-ubuntu
原文Google翻译为中文后,如下:
这是一个 PSA,适用于那些希望在新的 Windows 子系统 Linux - WSL 2 下安装 MySQL Server 8.0 和 Ubuntu 发行版的人。
Systemd 在 WSL 2 中不作为默认值可用,并且 init.d 脚本不在启动时运行。
更重要的是,如果您从这里的 deb 包安装 MySQL 8 https://dev.mysql.com/downloads/repo/apt/ - 将不会安装用于启动或停止 MySQL 的默认 mysql.server 帮助程序脚本.
一种解决方案是mysql.server.sh从这里下载脚本 - https://github.com/mysql/mysql-server/tree/8.0/support-files - 然后将脚本复制并重命名为/etc/init.d/mysql(确保它也是可执行的 - chmod +x mysql)
然后,您需要为basdir,datadir和 pid 文件位置设置默认值。
这是文件顶部和对我有用的设置的摘录…
# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.
basedir=/usr
datadir=/var/lib/mysql
# Default value, in seconds, afterwhich the script should timeout waiting
# for server start.
# Value here is overriden by value in my.cnf.
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900
# Lock directory for RedHat / SuSE.
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql"
# The following variables are only set for letting mysql.server find things.
# Set some defaults
mysqld_pid_file_path=/var/run/mysqld/mysqld.pid
if test -z "$basedir"
在此之后,您应该能够启动和停止 MySQL,如下所示:
sudo service mysql start
sudo service mysql stop
更新:在这篇文章中 https://www.58bits.com/blog/2020/05/30/wsl-2-setup-development ; 我创建了一个辅助脚本,用于在 WSL 2 下启动和停止我需要的服务…
#!/bin/bash
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo service mysql "$@"
sudo service php7.3-fpm "$@"
sudo service nginx "$@"
SOLR_ULIMIT_CHECKS=false /opt/solr/bin/solr "$@"
无论出于何种原因,我都需要/var/run/mysqld在启动 MySQL 之前检查该目录是否存在并设置了权限。
然后我在我的.localrc或.local.fish文件中为以下命令设置别名:
#wsl
alias wsl-up='~/Scripts/windows/wsl-exec-services.sh start'
alias wsl-down='~/Scripts/windows/wsl-exec-services.sh stop'
如果我已经重新启动,或者我想切换到另一个运行类似服务的发行版,我会运行wsl-up,或者wsl-down根据需要运行。
今天(2022-12-23)看了MySQL的官网,在CentOS系统中也安装了MySQL,安装之后在DataGrip中连接不上,后来发现是CentOS的防火墙给拦了,需要开放3306端口:
systemctl status firewalld // 查看防火墙状态
systemctl stop firewalld // 停止防火墙
systemctl start firewalld // 启动防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent // 开放一个tcp的3306端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent // 移除某个开放的端口
firewall-cmd --reload // 使刚刚的防火墙设置生效
firewall-cmd --list-ports // 查看所有放开的端口
firewall-cmd --list-all // 查看所有放开的东西