好久不动Linux了,加上以前用的本就少,所以这次安装,跟新手差不多,总结一下,供菜鸟们参考:
1.先从www.mysql.com 网站上下载到最新版的mysql社区版安装包,我下到的是mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
2.mysql安装包里是没有./configure & make这一套东东的,需要按照其说明文档进行操作,这里从安装包里看到的是INSTALL-BINARY,用UE打开后
其中有一段
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz #注意把路径更换为自己下载的安装包位置和名称
shell> ln -s full-path-to-mysql-VERSION-OS mysql #同上,把解压出来的实际路径名称填上
shell> cd mysql
shell> mkdir mysql-files
shell> chmod 770 mysql-files
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql # Before MySQL 5.7.6
shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up 在初始化的时候,一定要仔细看屏幕,最后大概有一行2015-12-24T09:05:03.283677Z 1 [Note] A temporary password is generated for root@localhost: kklNBwkei1.t #注意这是root的临时密码
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
shell> chown -R root .
shell> chown -R mysql data mysql-files #这句执行时报错,我是把data去掉就好了
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server #注意这里cp出来的名字是mysql.server,而不是mysqld,所以启动服务时要用service mysql.server start,如果希望是mysqld,那最后这句就写成cp support-files/mysql.server /etc/init.d/mysqld,就行了
照着操作就可以了,也比较简单。不过我犯了个错误,抄错行了,已经初始化了,然后才发现。只好去rm掉/var/lib目录下的mysql目录,重新开始
启动服务 service mysqld start (如上一步中讲到的,有的同学的可能是service MySQL.server start)之后开始登录
为了方便,在bin目录中创建了一个链接文件 ln -s /usr/local/mysql/bin/mysql /bin/MySQL,当然也可以在环境变量中加入该路径,比如:PATH=$PATH:/usr/local/MySQL/bin
之后登录时总是报一个这样的错误:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
好像是说找不到socket文件,查了一下,这个文件要是损坏了,只要重启一下服务就好,说明这就是服务启动后才会出现的类似监听端口的配置文件
然后试了一下mysql -uroop -p --socket=/var/lib/mysql/mysql.sock 输入初始化时记录的密码
登录成功
因此,ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
然后 就全都搞定了
还有最后一步,改一下root密码
set password for ‘root‘@‘localhost‘ = password(‘wjz‘);
补充说明一点,上面操作均是在root下完成的,当我们退出到普通账号之后,有可能发现执行MySQL命令的时候仍然报错ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)
,这就可能是权限的问题了,查查/tmp目录中的MySQL.sock文件,以及/var/lib/mysql目录等,改一下权限,问题就可以解决了。
原文地址:http://367066.blog.51cto.com/357066/1829394