国产麒麟操作系统安装MySQL(炒鸡简单!)

在国产的操作系统上,需要部署MySQL,于是网上开始搜资料,各种各样的资料特别多,还满心欢喜觉得这下靠谱。结果没想到,看了很多资料,操作都很繁琐,洋洋洒洒上千行字的看得眼花缭乱。于是筛选了一些资料试着操作一下,切换了五六份资料,每一份都有靠谱的和不靠谱的地方,整合一下十来分钟整完全部步骤。

本来是想着像做欧拉系统的MySQL那样,采用离线安装的方式,后来想想,电脑都能联网的那我还离线干啥?不如干脆看看能不能在线装。

网上看到有通过软件商城安装的。之前有试过,但是有三个问题一直困扰着我:

第一个是,安装完后在系统里执行mysql提示找不到这个命令;

第二个是,安装后需要修改/etc/my.inf里面的数据,但是由于系统没有开放root权限给我,我没有修改根目录下文件的权限;

第三个是,更让我觉得“怀疑”的地方,安装包只有8k,这么小的安装包“一定”不可能是整个数据库的,要知道,MySQL官方离线安装包的服务端就八百多兆了。

基于这几个点,我一直没用商店的做安装。但是最后,我还是通过软件商店成功安装并启动,顺带打了一巴掌自己脸。

步骤一:打开软件商城

并搜索MySQL,安装“MySQL服务器”和“MySQL工作台”。

步骤二:重启电脑,reboot!

步骤三:打开终端:

①执行mysql --version查看版本

mysql  Ver 8.0.33-0kylin0.20.04.2k0.1 for Linux on aarch64 ((Ubuntu))
系统安装的版本是8.0.33的麒麟版。原来我之前安装那次,提示mysql指令不存在,是因为没有重启系统???

②启动mysql:

还是在终端里,执行sudo systemctl start mysql,提示输入本机的登录密码,输入完毕后mysql服务就已经启动了。

步骤四:进入mysql

由于我们没有root账号密码。正常的,我们是需要去做一些破解修改密码操作(即,修改/ect/my.inf文件)来达到免密登录mysql再进行修改,但是我发现这边它安装完后在/etc/目录下不存在my.inf文件,反倒是,在/ext/下有一个mysql子目录,在这个子目录下有my.inf文件---不变的是,它依然是一个readonly文件。

其实,也没那么麻烦,直接又是一条指令:

sudo mysql

就这么简单直接可以进入到mysql命令模式下了...

步骤五:修改mysql中root的密码

在原始mysql下的账户是,root的host是localhost的。我直接删掉root账户,然后再自己创建一个root@%的账户。(这里埋下了个雷!建议跳过这里的①②③操作,直接修改密码,然后update一下mysql.user的表,把host地址从localhost改为%。这个雷的处理方法在文末更新里有提到了的)

①执行命令删除账号:

delete from mysql.user where user='root';

②执行命令创建账号:

create user 'root';

③先查看一下创建情况:

 select user,host from mysql.user;

可以看到,有了一个root账号,host是%的

④修改root账号的密码:

alter user 'root'@'%' identified by 'root';

附:我猜应该都可以采用不删除再增加账号,直接修改root的host为%,然后直接再修改一下密码就完事了。

步骤六:权限授予。

诶,奇怪了,这新建的账号,默认的权限就是*.*的,所以我都没修改权限。

权限的授予方式是:

grant all privileges on *.* to 'root'@'%'

查看权限的方式是:

show grants for 'root'@'%';

至此,mysql内部的配置全部完成!

步骤七:配置自启动。

首先查看一下是否设置了开机自动启动,在命令行模式下输入

systemctl is-enabled mysql

直接返回了enabled,额,都不用配置已经搞掂了....

如果没自动设置自启动,那就执行chkconfig mysqld on也可以实现。

整个流程下来,包括查资料,仅仅十来分钟就搞掂全部工作了,真的是快到我自己都不相信...

2024.03.14更新

今天琢磨配个数据库然后用起来,愉快的登录了root账户,好吧,悲剧来了,无论执行什么操作,都提示没有权限...网上搜寻了一大堆,后来我想想,应该估计是我当时配置的时候,没有把权限调成Y!

所以只好再配置一次相关设置。由于这时候我的root账户已经被“锁了”,能进去,啥也干不了,那只能是进跳过验证进去做一些操作。

1.咔嚓掉mysql服务:

systemctl stop mysql

2.跳过安全检查进入

mysqld_safe --skip-grant-tables &

3.额,报错了,说是mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.于是乎创建一个

①创建:sudo mkdir /var/run/mysqld

②获取权限:sudo chown -R mysql:mysql /var/run/mysqld

4.继续执行第二个步骤进入

5.新开一个shell,登录进去:

mysql -u root

6.开始为所欲为了!先查看一下权限:

select * from user\G;

7.果不其然,都是N啊!

就是这破玩意儿搞得鬼!~我怀疑是因为我前面删了root然后重建root账户,这个账户就没有权限(之前只是配置了*.*的数据库访问权限,但是没有配置操作权限的原因?不晓得,反正干就是了!)

就是这张表出了问题,改!

8.执行一下指令,把所有的N都改为Y!

update mysql.user set Select_priv='Y' where user='root';

update mysql.user set Insert_priv='Y' where user='root';

update mysql.user set Update_priv='Y' where user='root';

update mysql.user set Delete_priv='Y' where user='root';

update mysql.user set Create_priv='Y' where user='root';

update mysql.user set Drop_priv='Y' where user='root';

update mysql.user set Reload_priv='Y' where user='root';

update mysql.user set Shutdown_priv='Y' where user='root';

update mysql.user set Process_priv='Y' where user='root';

update mysql.user set File_priv='Y' where user='root';

update mysql.user set Grant_priv='Y' where user='root';

update mysql.user set References_priv='Y' where user='root';

update mysql.user set Index_priv='Y' where user='root';

update mysql.user set Alter_priv='Y' where user='root';

update mysql.user set Show_db_priv='Y' where user='root';

update mysql.user set Super_priv='Y' where user='root';

update mysql.user set Create_tmp_table_priv='Y' where user='root';

update mysql.user set Lock_tables_priv='Y' where user='root';

update mysql.user set Execute_priv='Y' where user='root';

update mysql.user set Repl_slave_priv='Y' where user='root';

update mysql.user set Repl_client_priv='Y' where user='root';

update mysql.user set Create_view_priv='Y' where user='root';

update mysql.user set Show_view_priv='Y' where user='root';

update mysql.user set Create_routine_priv='Y' where user='root';

update mysql.user set Alter_routine_priv='Y' where user='root';

update mysql.user set Create_user_priv='Y' where user='root';

update mysql.user set Event_priv='Y' where user='root';

update mysql.user set Trigger_priv='Y' where user='root';

update mysql.user set Create_tablespace_priv='Y' where user='root';


update mysql.user set Create_role_priv='Y' where user='root';


update mysql.user set Drop_role_priv='Y' where user='root';

一气呵成,重启一下下电脑先~

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值