linux下安装mysql
昨天忙了一天,一直到夜里四点多,就为一件事安装mysql数据库
mysql安装分为好多种,一种是yum安装,第二种是程序安装,第三种是代码安装,这三种方式我并不想一一介绍,这篇文章重点是说遇到的问题
我选的是第三种
安装步骤
到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
我现在的是mysql-5.6.37-linux-glibc2.12-x86_64.tar,链接https://dev.mysql.com/downloads/mysql/5.6.html#downloads
第二步解压文件 tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz
第三步 将解压文件 拷贝到 usr目录下 cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
第四步 添加系统用户和系统用户组 groupadd mysql和useradd -r -g mysql mysql
第五步
进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./
安装数据库:执行命令 ./scripts/mysql_install_db --user=mysql
修改当前目录拥有者为root用户:执行命令 chown -R root:root ./
修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data
第六步:
启动mysql服务和添加开机启动mysql服务:
添加mysql为服务:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
赋予权限 chmod +x /etc/init.d/mysql
添加服务 chkconfig --add mysql
开启服务 chkconfig --level 345 mysql on
把mysql客户端放到默认路径:ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
启动mysql服务:执行命令service mysql start
这一步 有可能会报错,can't connect to local mysql server through socket 'tmp/mysql.sock' (2)
或 can't connect to local mysql server through socket 'tmp/mysql.sock' (111)
第一个是因为找不到 .sock文件,第二种是.sock文件无效
因为 service mysql start 默认会创建一个sock文件用于连接,但是.sock文件的位置 默认是在 /var/lib/mysql 目录下,而mysql读取这个文件是在/tmp下,
所以会导致这种错误,如果你到/var/lib/mysql 把这个文件mv到/tmp下你会发现,错误没有了,但是谁都不希望这么麻烦,所以可以通过修改配置文件 my.cnf(/usr/local/mysql/my.cnf)
把socket文件目录改为/tmp即可
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
socket=/tmp/mysql.sock
port=3306
[mysql]
socket=/tmp/mysql.sock
port=3306
执行命令:./bin/mysqladmin -u root password '密码'
最后要开放3306端口,否则外部无法连接
/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
保存
/etc/rc.d/init.d/iptables save
重启服务
service iptables restart