前言
能够再次参加datawhale组织的开源学习是十分兴奋的,看到datawhale能够越办越好我也是由衷地感到高兴。
这次参加的是mysql的学习,我知道这样短期的学习不会对我的能力造成多么大的提升,但是相信经过这次学习,我又将被datawhale领进对我来说全新的大门。
DataWhale网站
环境搭建
datawhale的教程文档在这一次给出了在三类系统上的安装方法,不过对于linux系统上的安装,他们采用了centos进行演示。在linux中安装的过程大同小异,我在这里使用Ubuntu系统来安装MySQL。
Ubuntu的软件源中应该有自带mysql,这种方法主要针对软件源中不含mysql-server的情况。你可以先sudo apt install mysql-server试试 。
下载.deb包
这是下载链接,你可以直接点击下载,也可以复制链接,并使用wget等工具下载。
这一个包是用于安装软件源的,并不是软件本身哦。
下载完毕后,你将会得到一个.deb文件(之所以是deb文件,是因为ubuntu是基于debian系统的,这些就不再赘述)。你可以右击通过“软件安装”来安装它,也可以使用命令行安装,在这里我们使用命令行安装,因为这样更能够体现安装的细节。
在.deb包的通过下面的命令来安装。我在这里使用了相对路径“./”,这是因为由于终端装了自动补全插件,如果不让它知道这是通过本地的文件来安装的话。tab一下会出来很多选项。所以我建议相对路径时,最好还是加一个“./”会比较不容易出错。
sudo apt install ./mysql-apt-config_0.8.25-1_all.deb
在这个页面中,按上下方向键进行移动,enter进行选择。
其中第一个是“本体”,是必须的,第二个是些工具包和一些动态链接库一般也是需要的,preview这个字面意思,一些预览、预发布的软件包,我们只是初学者的话当然不需要选。
也就是说,默认选项就行。
后面还会再让你确认一次,也是一样的。
安装mysql
更新软件源
sudo apt-get update
安装mysql服务器,这个跟在centos下的包名是一样的。
sudo apt-get install mysql-community-server
然后会让输密码:
请提供一个将为MySQL数据库的根帐户设置的强密码。保留为空可使用基于UNIX套接字的身份验证启用无密码登录。
那么我就保留为空了,反正是自己学习用的电脑是不?
但是!但是!我不建议使用免密码的安装方式,因为有密码的安装方式很轻松,但是免密码的安装方式后面要踩一大堆的坑啊啊啊!
然后你还会碰到一堆信息
MySQL 8使用了一种基于改进的基于SHA256的密码方法的新身份验证。建议所有新的MySQL Server安装今后都使用此方法。这个新的身份验证插件需要新版本的连接器和客户端,并支持这个新的验证方法(caching_sha2_password)。目前,使用libmysqlclient21构建的MySQL 8连接器和社区驱动程序支持这种新方法。使用旧版本的libmysqlclient构建的客户端可能无法连接到新服务器。为了保持与旧客户端软件的兼容性,可以将默认身份验证插件设置为旧值(mysql_native_password)。只有在所需的第三方软件尚未更新以使用新的身份验证方法时,才应执行此操作。更改将写入文件/etc/mysql/mysql.conf.d/default-auth-override.cnf
安装后,可以通过设置default_authentication_plugin服务器设置来更改默认设置。
按右箭头键即可到达<确定>位置(?
然后会让你设置密码验证方式,按推荐的来就行。
安装完成后,开机启动项、环境变量等,都已经自动配置好了。
mysql数据库设置
通过命令
sudo service mysql status
你可以获取到当前的服务的情况。
其余种种命令也都是关于服务和开机启动项目的一系列常规命令,在此就不加赘述了。
下面就是进入数据库了。这个时候一般来说是进入debian.cnf查看初始密码,但是我们这个是从包安装的,并且没有设置初始密码,所以有所不同。
你可以先尝试datawhale教程的这种方法,不过我们这种情况是查看error.log
sudo grep 'password' /var/log/mysql/error.log
其结果为
2023-07-17T11:41:05.566179Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2023-07-19T01:10:45.900449Z 8 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
即,没有初始密码,如果你再使用通常的后面加
−
p
-p
−p的输入密码登陆的方式,那么是不会成功的。
要想实现免密码登陆,我们需要对配置文件进行修改。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
然后在最后一行添加
skip-grant-tables
保存并关闭文件后,重启mysql服务。
sudo service mysql restart
然后使用不加-p的命令直接登陆
mysql -u root
如果在这样的界面上对数据进行操作,那无疑是十分麻烦的,因此我们还是需要安装可视化工具,或者说客户端。
安装客户端
我目前并没有使用其他数据库的需要,因此我仅仅使用mysql官方推出的workbench作为客户端,在ubuntu下的下载命令为
sudo apt install mysql-workbench-community
你同样也可以前往官方的源去下载。
然后你可以在引用菜单中点击图标启动,或是命令行启动mysql-workbench
里面就已经有了这个本地实例。
或者你也可以选择使用DBeavar的客户端。
这个可以从snap直接获得。
snap install dbeavar-ce
即可。