写在开头的小故事: 很久以前小石头我在一家公司做运维工程师,当时我们有一台认证服务器安装了mysql5.5版本。有一天领导说防止它挂掉,做个主从复制吧,我开心的接受任务,但是让某同事听到了, 此同事代号x,小x上来就是一波跟我装x,跟我说我们还要用5.5版本的,5.5是最好的版本,安装一定要用源码安装,这样性能才是最佳的,还有一堆blablabla.......... 总之我感觉没一句是完全对的,我得出的结论是:You can you up , No can no bb................ 下面我来写我是怎么安装mysql的,如果有哪些不对,欢迎指出。
step1: 下载mysql的安装包,那么就有几个问题了,如下: 下载什么平台的mysql? 答:Linux版本,不管是centos还是debian我们都用Linux - Generic,也就是Linux上的通用版本。 用什么版本号的mysql? 答:5.5其实老了,有很多问题,尽量用新一点的,用5.6或5.7都行。 源码安装还是用官方编译好的包? 答:都说源码安装定制度高,性能好,那我想问问你,你要定制哪些东西?性能提高多少?你不知道的话还是用官方编译好的二进制包吧。 不过听说intel有个很好的c++编译器,真的能提高性能,但是付费的,没用过。。。 去哪里下载mysql? 答:肯定是官网上,别在百度上乱找,官网地址:https://dev./downloads/mysql/ 我们先来安装5.6吧,我直接用wget下载,也可去官网点击下载:
step2: 安装过程:
我们来验证一下是不是真的启动了:
我们看到了进程号为24517的mysql进程: 通过上面使用bin/mysqld_safe --user=mysql &方式启动的mysql进程,会自动监控mysql进程状态,如果mysql进程意外死掉,则会被重新调起来: 看我们手动把它杀掉了,然后它又restart了。。。。 如果想关掉进程,执行下面命令:
我们还可以用下面这种方式启动,当进程意外退出时,不会被自动调起:
上面两种启动方式了解就好,最佳做法是:
程序可以正常启动了,下面说说配置文件吧。
step3: 一个相对较优的配置文件:
我们将使用上面的配置文件,对数据库进行重新初始化: 由于配置文件中指定了新的data目录,所以我们把原来的干掉吧!
把上面的内容写到/etc/my.cnf中,然后重新执行scripts/mysql_install_db --user=mysql初始化数据库,可以看到新的data目录已经生成了:
别高兴的太早!error.log里面的错误日志了解一下?
是的你猜的没错,我这机器硬盘一共就6G,满了。。。那先改成1G
如果出错了就自己看error.log具体问题具体分析,总有各种各样的问题,初始化之前把/data/mysql_data等旧文件删除,再重新初始化。 然后启动数据库:
然后把配置文件中的#autocommit = 0 去掉注释,重启数据库让此项生效。 如果初始化时没把此项注释,则你执行mysql -uroot -p是连不上数据库的,因为数据库时的user表中根本就没有生成root用户,在5.7中这个问题已经没有了。 最后mysql5.6中的test库应该删除,因为它是不安全的。
注意: 错误日志在哪里? 答:如果不在配置文件中指定, 则在/usr/local/mysql/data下会生成相应的*.err文件。 报出data目录没有权限? 答:data目录的权限应该是mysql:mysql才对,如果之前系统安装了mysql,则会在/etc/下存在旧的配置文件my.cnf,mysql会优先读取它,所以在安装之前应该将旧的配置文件干掉,免去不必要的麻烦。 使用上面的配置文件初始化数据库,执行mysql -uroot -p登录不上? 答:上面说了,初始化之前把autocommit = 0注释掉,装完了再打开,不然是生成不了root用户的。mysql5.7版本无此问题。 |
|
来自: 昵称54185769 > 《待分类》