openSUSE 中使用 mariadb 数据库初步

使用 zypper 中可以查询到 mysql 的社区版本,不过 openSUSE12.3 已经缺省安装了 mariaDB,这个版本完全兼容 mysql,实际上连命令都是一样的。如果强行安装 mysql,openSUSE 会提示是否替换掉 mariaDB。牵狗搜索了一下,建议还是保留 mariaDB。

openSUSE 的处理有点奇怪,默认安装了 mariaDB,但是又没有启动该服务。因此实际应用时,还是需要稍微配置一下 (以下步骤全部切换到 su 用户):
(1)启动 mariadb: service mysql start (瞧,名字都是 mysql)
(2)将 mysql 加入到自动启动列表: chkconfig --add mysql (与 Redhat/CentOS 系同样的方式,xxx 系一般采用 update-rc.d)
(3)设置 root 用户密码: mysqladmin -u root password “xxx” (其中,xxx 应为实际密码)
(4)登录 mariaDB: mysql -u root -p

  1. MySQL/MariaDB 都分服务器端和客户端的。没有启用的是服务器服务。因为桌面用户不需要。

  2. 你给的这两条命令过时了。

    sudo systemctl enable mysql.service
    sudo systemctl start mysql.service

就能完成你说的工作。

反过来是

sudo systemctl stop mysql.service
sudo systemctl disable mysql.service

另外重启是

sudo systemctl try-restart mysql.service

上述 systemctl 命令为 systemd 通用命令,可用于其它任何服务。

这正是我觉得 openSUSE 定位让人感觉奇怪的地方。

如果定位在桌面端,就根本没有必要缺省安装 MySQL 或者 MariaDB。如果定位在服务器端,既然安装了 MariaDB,显然同时启用它就比较合理。

如果定位是 cover 两端,也没有必要安装。有需要的人,自然会联网安装并启动的。什么情况下会安装但是不启用呢?

另外,请问 SLES 有没有类似 CentOS 这样的免费再编译版本?似乎 openSUSE 单纯定位在桌面端比较合适,在生产环境使用 openSUSE 还是让人纠结。

  1. MariaDB 根本就不是缺省安装的啊亲,这货纯粹的是服务器端,客户端的内容一点没有,默认安装的是 libmysql 这些东西。谁知道你怎么把它弄上去的…

  2. SLES 是 openSUSE 的收费再编译,不知道这么说你听明白了没有。所以 openSUSE 永远都是桌面和服务器兼顾的。

难道是 rp 爆发过头了? 有什么 log 可以查看安装记录吗? 我想再检查一下。

整个安装步骤就没几步:安装基本系统(DVD 版) -》 打所有补丁 --》安装 qtcreator --》安装 mysql (提示是否替换 mariadb)–》检查 mariadb (已安装)

在此之前,我都不知道有 mariadb 这么个东西,神迹啊。。。

在我没弄错的情况下,应该是你安装了一些别的自动依赖 mysql 所以装上的。

/var/log/zypper.log 里有你的软件安装记录。

linux-wi27:/var/log # cat zypper.log | grep maria
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1139 mysql-community-server-5.5.30-1.1.1.i586 与 namespace:otherproviders(mysql) 冲突,由 mariadb-5.5.29-1.1.1.i586 提供
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1373 去除 mariadb-5.5.29-1.1.1.i586 的安装
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1373 去除 mariadb-client-5.5.29-1.1.1.i586 的安装
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1139 mysql-community-server-5.5.30-1.1.1.i586 与 namespace:otherproviders(mysql) 冲突,由 mariadb-5.5.29-1.1.1.i586 提供
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1373 去除 mariadb-5.5.29-1.1.1.i586 的安装
2013-04-19 08:39:05 <1> linux-wi27.site(3750) [zypp] SATResolver.cc(problems):1373 去除 mariadb-client-5.5.29-1.1.1.i586 的安装
2013-04-19 08:40:42 <1> linux-wi27.site(3796) [zypper] main.cc(main):76 ===== 'zypper' 'search' 'mariadb' =====
2013-04-19 08:41:10 <1> linux-wi27.site(3805) [zypper] main.cc(main):76 ===== 'zypper' 'install' 'mariadb' =====
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper++] PackageArgs.cc(preprocess):99 args received: mariadb 
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper++] PackageArgs.cc(preprocess):103 args compiled: mariadb 
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper] PackageArgs.cc(argsToCaps):255 got wanted 'mariadb'; repo ''
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper++] misc.cc(pkg_spec_to_poolquery):473 * solvable:name: mariadb 
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper:req++] SolverRequester.cc(updateTo):489 selected:  U__s_(10922)mariadb-5.5.29-1.1.1.i586(repo-oss)
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper:req++] SolverRequester.cc(updateTo):491 highest:   U__s_(10922)mariadb-5.5.29-1.1.1.i586(repo-oss)
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper:req++] SolverRequester.cc(updateTo):492 installed: I__s_s(37553)mariadb-5.5.29-1.1.1.i586(@System)
2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper:req] SolverRequester.cc(updateTo):549 'mariadb' already installed.

从log看,符合我的安装步骤:
(1)首先安装mysql,系统提示mariadb冲突;
(2)于是搜索mariadb; --> 2013-04-19 08:40:42 <1> linux-wi27.site(3796) [zypper] main.cc(main):76
(3)准备安装mariadb, --> 2013-04-19 08:41:10 <1> linux-wi27.site(3805) [zypper] main.cc(main):76
(4)系统提示已安装; --> 2013-04-19 08:41:14 <1> linux-wi27.site(3805) [zypper:req] SolverRequester.cc(updateTo):549

奇怪,看不出来是哪一步把ta给装进去的。

另外还有个问题,在安装过程中,我选择了“禁止安装游戏”, 但是现在系统中仍然安装了游戏。我不确定是初始安装时弄进去的,还是后来自动更新系统时给弄进去的。不过我想既然选择了“禁止安装游戏”,无论哪个步骤都不应该再给安装进去。

不知道你在说什么,openSUSE 哪里来的「禁止安装游戏」?

当然是有的:

step1: 在{安装概览}步骤时,点击{更改},并选择修改{软件}:


step2: 在软件配置中,选择{游戏},右键,选择禁用:


按照上述步骤,我的理解就应该是不安装与游戏相关的软件包。

另外,我同时怀疑:就是进行了这步操作,openSUSE 才默默地安装了 mariadb。

有几个游戏不受影响,还是会安装的,你不能在左边选择禁用,你要在右边选择“此列表中全部 – 删除”,才能把所有游戏删除。

ok,明白了,多谢。

$ sudo chkconfig mysql on
$ sudo systemctl start mysql.service
$ mysql