在安装5.7.17版本的mysql的时候遇到一些坑,想记录下来。
上面地址是mysql官网下载地址,我下载的版本是linux-generic Linux - Generic (glibc 2.5) (x86, 64-bit), TAR ,在linux文件夹下提前,或者用命令行解压,按照官网提供的文档,复制到 /usr/local/mysql ,建立mysql用户和用户组,是所属关系。解压的mysql文件,修改它的user和group属性:
chown -R mysql .
chgrp -R mysql .
我操作的是在当前目录,即/usr/local/mysql,如果说没有权限,请加 sudo
安装一个依赖库
apt-get install libaio-dev
然后就是初始化,5.7版本在初始化的时候如果不加一些参数,会默认初始化带一个随机密码,虽然说这个密码可以在错误日志中找到,但是我没有找到
找回或者修改密码可以下面一篇,但是如果初始化的时候就处理好就不用这么麻烦了
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)"
5.7.11版本初始化的是用bin目录下面的mysqld
./bin/mysqld --initialize-insecure --user=mysql
这里初始化的时候加了一个参数 -insecure,如果不加的话,就是默认在安全模式下会生成一个随机的密码,为了避免麻烦加了这个参数
当然还有一些额外的参数,如配置文件中的basedir datadir,如果不写在配置文件(一般在 /etc/my.cnf),可以直接加在后面:
./bin/mysqld --initialize-insecure --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
上面的命令是一行,如果没有data文件,自己创建空的,我安装的时候好像没有这个,以前的版本确实有。
初始化安装完成之后就可以启动mysql了:
./support-file/mysql.server start
如果没有什么报错就是成功了,有报错,比如:
The server quit without updating PID file //这个一般杀死进程重启就可以了 msyql.server stop/restart,如果不是root或mysql重启的时候要注意权限
这里面提到了my.cnf,如果上面的安装我们加basedir datadir参数的话,可以用--default-file=/etc/my.cnf,只不过要在/etc/my.cnf里面加配置,上面的连接有范例还有这种错误:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我安装时出现这中错误是没启动mysql,或者说对/tmp 目录没有权限。
还有这种:
MySQL server PID file could not be found!
具体原因网上有很多,我重启,杀死进程都没用,恩,然后我又安装了一遍,重装前要卸载干净,可以看 上一篇如果都没问题了,那么就可以打开mysql看看了,bin目录下
mysql -u root -p
但是密码为空,回车直接跳过进入mysql,后面就可以自己设置密码。
恩,我主要想说的是个人安装mysql,需要加上 --initialize-insecure 可以避免找密码的麻烦。