1.需求背景
软件系统研发离不开数据库,数据主要又分非关系与关系数据库,本文以关系数据库mysql或mariadb为主,以及其配套管理工具。
2.管理工具
windows下,我个人主要使用navicat。而navicat没有arm的版本。而在麒麟系统下,我们可以使用dbeaver(注:从各方面来看,这个工具是基于eclipse研发)
补充:麒麟应用市场中,有同类型的dbvisualizer可以使用
https://dbeaver.io/ 网上找到下载地址
arm版本只提供压缩包,同时在运行之前,我们需要先安装JDK,JRE,这里就直接安装default-jdk,default-jre
等jdk,jre安装完毕,启动dbeaver
3.数据库安装
3.1 Mariadb安装
我这里使用mariadb,可以通过应用市场 ,也可以通过命令行
sudo apt-get install mariadb-client mariadb-server
安装完成后,初始密码及相关信息
sudo service mysql status #确认数据库服务是否已启动
接下来根据向导一步步填入相关信息,只要记好密码(我这里设置为123456),如果不行就可以再次重新执行
sudo mysql_secure_installation
使用dbeaver连接,新建数据库连接,选择mariadb,初次连接会要求下载相关驱动(界面有提示和操作按钮)
连接成功效果图
3.2Mysql安装
1.服务的安装
2.工作台WorkBench的安装
其他参考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
3.2.2 错误2(可能出现)
出现如下错误,尝试解决
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
查看这个文件可以看到安装后的默认密码/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
5.mqtt
麒麟操作系统专栏:
https://segmentfault.com/blog/kylinos
文章发表在SegmentFault
联系邮箱:1179611323@qq.com
群:662512340
发行日志:
20220609 首发
20220726 补充应用市场的dbvisualizer工具
20230325 增加mysql服务器安装(当前仓库默认指向是mysql8)
20230326 增加执行mysql_safe时出现错误的解决办法
20230327 增加mysql8不支持password函数的解决办法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。