2
头图

1.需求背景

软件系统研发离不开数据库,数据主要又分非关系与关系数据库,本文以关系数据库mysql或mariadb为主,以及其配套管理工具。

2.管理工具

windows下,我个人主要使用navicat。而navicat没有arm的版本。而在麒麟系统下,我们可以使用dbeaver(注:从各方面来看,这个工具是基于eclipse研发)
补充:麒麟应用市场中,有同类型的dbvisualizer可以使用
https://dbeaver.io/ 网上找到下载地址
图片.png
arm版本只提供压缩包,同时在运行之前,我们需要先安装JDK,JRE,这里就直接安装default-jdk,default-jre
图片.png
图片.png
等jdk,jre安装完毕,启动dbeaver
图片.png

3.数据库安装

3.1 Mariadb安装

我这里使用mariadb,可以通过应用市场 ,也可以通过命令行
图片.png

sudo apt-get install mariadb-client mariadb-server

图片.png
安装完成后,初始密码及相关信息

图片.png

sudo service mysql status #确认数据库服务是否已启动

接下来根据向导一步步填入相关信息,只要记好密码(我这里设置为123456),如果不行就可以再次重新执行

sudo mysql_secure_installation

图片.png
使用dbeaver连接,新建数据库连接,选择mariadb,初次连接会要求下载相关驱动(界面有提示和操作按钮)
图片.png
连接成功效果图
图片.png

3.2Mysql安装

1.服务的安装
图片.png
2.工作台WorkBench的安装
图片.png
其他参考Mariadb安装

3.2.1 错误1(可能出现)

mariadb启动报错:Failed to start MariaDB database server
参考地址:https://serverfault.com/questions/812719/mysql-mariadb-not-st...

删除此文件夹的所有数据(如果没有存在的重要数据库) /var/lib/mysql,并重新初始化.

sudo bash
cd /var/lib/mysql
rm -rf *.*
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql #to initialize database directory.
service mysql restart #重启服务

回到正常用户(exit)下,执行

mysql_installation_secure

图片.png

图片.png

3.2.2 错误2(可能出现)

出现如下错误,尝试解决

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

图片.png
查看这个文件可以看到安装后的默认密码/etc/mysql/debian.cnf,这个密码是属于debian-sys-maint的,而非root。
解决办法,打开终端

sudo service mysql stop
sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking #新开一个窗口,保持这个进程运行
mysql
MariaDB [(none)]> use mysql;
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('mypassword'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

特别留意:plugin = 'mysql_native_password' 必须要这个选项,不然怎么处理都不会成功的。
关闭mysql服务,可以使用ps -aux | grep "mysql" 查看相关进程,并使用kill 杀掉

3.2.3 错误3(可能出现)

执行sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking可能会出现以下错误:

2023-03-26T03:09:12.931769Z mysqld_safe Logging to '/var/log/mysql/error.log'.
2023-03-26T03:09:12.933708Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

解决办法,执行下面的命令

sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld

执行(注意,mysql8不支持password函数,需要改变写法)

sudo service mysql stop
sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking #新开一个窗口,保持这个进程运行
mysql
MariaDB [(none)]> use mysql;
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = CONCAT('*', UPPER(SHA1(UNHEX(SHA1('mypassword'))))),plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost'; #mysql8已经不支持password函数了。
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

重启服务:

$ sudo service mysql start

使用mysql -u root -p 输入刚设置的密码,成功登录。

4.redis

图片.png

5.mqtt

图片.png

麒麟操作系统专栏:
https://segmentfault.com/blog/kylinos
文章发表在SegmentFault
联系邮箱:1179611323@qq.com
群:662512340
发行日志:
20220609 首发
20220726 补充应用市场的dbvisualizer工具
20230325 增加mysql服务器安装(当前仓库默认指向是mysql8)
20230326 增加执行mysql_safe时出现错误的解决办法
20230327 增加mysql8不支持password函数的解决办法


码上世界
74 声望280 粉丝

码农极客,2004年接触Linux世界。爱技术的IT的男