1.为什么选用tar.gz离线包
数据库比较大,在线安装慢,copy要快很多。唠叨下,现在的百度没有以前好用了,以前百度一篇mysql包的配置很好理解也很好用,现在随便百度一篇又长,又晦涩,又tmd的又错。看了上十篇,不想看了,google找了一篇靠谱的,凭着记忆改改配置过程。
2.为什么千万不要去配置和操作my.cnf
mysql是一数据库,数据很复杂,就算大多dba都不一定能搞的很清楚mysql的配置作用,百度看到的教程大多都不一样,有的my.cnf配置几百行,少的也有十几行。最坑的是每一篇都不一样,这个时候是你,你会怎么办?很无奈,很想有一位高人指路,是不是?
3.我们为什么不懂my.cnf
mysql包里面有my-default.cnf,用的时候会复制成my.cnf,里面只有[mysqld],然后你去百度,网上给的my.cnf里面不仅有[mysqld],还有[client]、[mysqld_safe]、[mysql]、[mysqldump],这可能还没完,说不定哪儿有冒出个不知所云的东西出来。这过程问题来了,
a.这些是什么东西,有什么用?
b.区别是什么?
c.就用用数据库为什么要配置这么多东西?
d.我怎么能搞懂这些东西?
e.要不要搞懂这些,有没有更方便快捷的?
f.按照这个教程,中途出问题了,是不是my.cnf的命令行哪点没配置,亦或者是说,哪些配少了,还活或者说,这个教程本来就有问题?
… …
花了很多时间(几个小时或者几十个小时,还头晕眼花想呕吐),去探索mysql的配置,结果呢,只用mysql几分钟。
若前面配置搞清楚了,接下来还要搞清楚下面的东西
bin目录下
mysql
mysql_client_test
mysql_client_test_embedded
mysql_config
mysql_config_editor
mysql_convert_table_format
mysql_embedded
mysql_find_rows
mysql_fix_extensions
mysql_plugin
mysql_secure_installation
mysql_setpermission
mysql_tzinfo_to_sql
mysql_upgrade
mysql_waitpid
mysql_zap
mysqlaccess
mysqlaccess.conf
mysqladmin
mysqlbinlog
mysqlbug
mysqlcheck
mysqld
mysqld-debug
mysqld_multi
mysqld_safe
mysqldump
mysqldumpslow
mysqlhotcopy
mysqlimport
mysqlshow
mysqlslap
mysqltest
mysqltest_embedded
support-files目录下
binary-configure
mysql-log-rotate
mysql.server
mysqld_multi.server
这些东西干嘛的?怎么用?网上看很多的教程又会有,mysql.server、mysqld、mysqld_safe怎么交叉在用?太乱了理不清。
4.不要理会my.cnf,摒弃它,看招–注意这是核心
1.选用的这个mysql,tar.gz包,可以根据自己需求换,这个包解压后不需要编译,以上版本应该也不需要吧,自己尝试一下,需要编译的包,要多几步。
tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz -C /usr/local
2.改名字操作方便些
mv /usr/local/mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql
3.这个提前安装好,一个不要落下,不然出错还会重新安装,每个人的linux环境不一样,若后面还是出问题,可能安装的不止这些,兵来将当。
yum install libaio numactl perl perl-devel perl-Data-Dumper -y
4.这个鄙人尚未理解透为什么不能用root,非要重新建个新组,隐隐记得很久以前配置的mysql根不需要这一步。这里不一定是mysql组mysql用户,可以是其他,网上大多是mysql,我们沿用就好了,堵在这里其实心很慌,不喜欢无缘无故多出来这些的东西,分成三句更恶心,所以合成了一句。
groupadd mysql && useradd -r -g mysql mysql && chown -R mysql:mysql /usr/local/mysql
5.初始化数据库,mysql_install_db 好像默认会启用mysqld,网上有直接用mysqld的,不怎么理解,所以就用了一个,–skip-grant-tables要加上,本来网上其他人说要配置在my.cnf中的,本人不喜欢my.cnf,想起很久以前有篇教程就是这样加在后面的,具体是在mysqld后面还是什么后面就不知道了,不过,加这后面好像也能用_
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql/ --skip-grant-tables
6.mysqld理解为进程吧,mysql.server理解数据库的看门的吧,门开了才让你进。
/usr/local/mysql/support-files/mysql.server start
7.后面直接回车,不用输密码的
/usr/local/mysql/bin/mysql -uroot -p
8.这更改权限,mysql数据库里面的代码,不多解释了
grant all privileges on *.* to root@"%" identified by '123';flush privileges
9.查看情况
select host,user from mysql.user
5.最后说明
第8步还可以update mysql.user set password=password(‘123’)更新密码; 若退出不能用密码重启一下就好/usr/local/mysql/support-files/mysql.server restart ;不想输入/usr/local/mysql/bin/路径的,可以加的path中去,这个应该不用教了吧。chkconfig配置开机启动,这个可以参考其他人的。