设为首页 收藏本站
查看: 671|回复: 0

[经验分享] 二进制安装mariadb的奇妙经历

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-21 10:54:15 | 显示全部楼层 |阅读模式
二进制安装mariadb的奇妙经历
1. MariaDB介绍

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL。基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎。虽然MariaDB被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。而且从MySQL迁移到MariaDB也是非常简单的。

详情点击mariadb官方站点
2. 二进制安装mariadb

下载二进制包:安装包:mariadb-10.2.8

# wget https://downloads.mariadb.org/in ... hua.edu.cn/mariadb/

解压到/usr/local下

# tar -xvf index.html -C  /usr/local/

解压后的相关目录说明:

bin:            各种二进制都在此目录下
data:           如果我们不创建新目录的话,此目录就是默认的数据目录。所以权限必须是属主和属组都是mysql
docs:           相关 文档include:        头文件lib:            库文件man:            帮助手册
mysql-test:     mysql测试组件
scripts:        mysql初始化时要用到的脚本
share:          mysql的共享内容
sql-bench:      对mysql做压力测试工具
support-files:  mysql正常运行的样例性的配置文件或文档

做一个软连接。切换到mariadb目录下。并参考一个安装说明文档

# ln -s /usr/local/mariadb-10.2.8-linux-x86_64/ /usr/local/mysql
# cd /usr/local/mysql/
# vim INSTALL-BINARY
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysqlshell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &

创建mysql用户和组,并修改mariadb下的权限

# groupadd mysql
# useradd -r -s /sbin/nologin -g mysql mysql
# chown -R mysql.mysql .

初始化脚本。使用mysql_install_db初始化数据库,使用--user定义数据库名称,--basedir定义软件主目录,--datadir定义数据库的存放目录,初始化完成后,将mysql的配置文件拷贝一份到my.cnf下。然后通过软件包提供的启动脚本mysql.server来管理服务进程并启动。

# mkdir -p /data/
# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/
# cp support-files/my-small.cnf /etc/my.cnf
# cp -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# /etc/init.d/mysqld start
Starting mysqld (via systemctl):
Warning: mysqld.service changed on disk.
Run 'systemctl daemon-reload' to reload units.Job for mysqld.service
failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
                                                       [失败]

这时发现启动失败:查看日志,发现并没有什么有用的信息。

# systemctl status mysqld.service
# tail -f /var/log/messages
Aug 20 11:58:56 php systemd: Starting LSB: start and stop MySQL...
Aug 20 11:58:57 php mysqld: Starting MySQL.170820 11:58:57 mysqld_safe Logging to '/usr/local/mysql/data/php.err'.
Aug 20 11:58:57 php mysqld: 170820 11:58:57 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/dataAug 20 11:58:57 php mysqld: ERROR!
Aug 20 11:58:57 php systemd: mysqld.service: control process exited,     code=exited status=1Aug 20 11:58:57 php systemd: Failed to start LSB: start and stop MySQL.
Aug 20 11:58:57 php systemd: Unit mysqld.service entered failed state.
Aug 20 11:58:57 php systemd: mysqld.service failed.

在查看/data/php.err日志:发现报错信息

# tail /usr/local/mysql/data/php.err
2017-08-20 12:03:26 139715621869376 [ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
2017-08-20 12:03:26 139715621869376 [Note] Server socket created on IP: '::'.
2017-08-20 12:03:26 139715621869376 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

经过请教得:在配置文件my.cnf的[mysqld]下添加datadir = /data/mysql 指明数据库的路径。 就好了。重启成功。

# /etc/init.d/mysqld startStarting mysqld (via systemctl):                           [  确定  ]
# ss -tnl|grep 3306LISTEN     0      80          :::3306                    :::*

如果此时mysql依然没有启动。报错如下,你可以删除/data/mysql/下的内容再重新初始化就好了

   
# /etc/init.d/mysqld start
Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/php.pid).
# cd /data/mysql/ && rm -rf *
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql/
Installing MySQL system tables...
OK
Filling help tables...
OK
.......
# /etc/init.d/mysqld start
Starting MySQL... SUCCESS!


配置好shell环境:

# PATH=$PATH:/usr/local/mysql/bin/
# echo "export PATH=$PATH:/usr/local/mysql/bin/">>/etc/profile

总结:被启动这个问题困扰了大概好几个小时。期间查询网上信息,未果。最后请教老师,被这一条语句所折服。这就足以看出经验的重要性了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-403213-1-1.html 上篇帖子: 百度云盘分享:MySQL零基础入门视频教程! 下篇帖子: MySQL数据库基本语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表