1.在安装mysql数据库服务器前,确保你的linux系统是可以连接网络的,下面我们将通过源码方式来安装mysql,首先确保系统中已经安装的gcc c++ 等编译环境,因为mysql从5.5版本开始是使用cmake编译的,如果三个环境都没安装,可以使用下面的命令进行安装:
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
2.查找系统里是否已经安装了mysql数据库的相关组件,使用命令:rpm -qa | grep mysql
如果查找到,可以使用下面命令进行强制卸载:rpm -e --nodeps 包名
3.请在当前登录用户的用户目录下(cd 回车)下载mysql的源码安装包
命令:wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz (没有--no-check-certificate命令会报错)
4.下载完成后,使用命令: ls 可以查看当前目前下存在 mysql-5.6.24.tar.gz
5.解压,命令:tar -zxvf mysql-5.6.24.tar.gz 或者 tar -zxf mysql-5.6.24.tar.gz (-zxvf可以看到解压过程,-zxf省略了解压过程)
6.跳转到解压好的mysql目录里,命令:cd mysql-5.6.24
7.开始编译mysql文件,首先配置编译的相关参数
命令:cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci
8.接着使用 make && make install 来编译并安装mysql
9.安装完成后,我们还要建立mysql的配置,首先设置mysql的访问权限,使用命令查看是否已经存在mysql用户及用户组
跳转到用户目录:cd ~
查看用户列表命令:cat /etc/passwd
查看用户组列表命令:cat /etc/group
10.如果不存在,我们就要创建:
添加用户组命令:groupadd mysql
添加用户:useradd -g mysql mysql
然后来修改之前安装的mysql所在目录的访问的用户及用户组输入命令:chown -R mysql:mysql /usr/local/mysql
11.然后是初始化mysql配置
切换到mysql安装目录:cd /usr/local/mysql
执行初始化配置脚本,创建mysql自带的系统数据库:./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注意:这个地方可能会出错
当输入./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql这个命令后
会出现上面的错误,原因:不能解析本机主机名!注意红框里的内容,应该是你创建linux时修改的主机名,默认的好像是localhost.localdomain,当然,你搭建linux时没有改动默认主机名,是不会出现这个错误的。
解决方法:vim /etc/hosts 然后将红框里你自己起的主机名添加到每行的最后,如下图
补充完,重新执行一次./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
12.修改mysql配置文件
输入命令:vi my.cnf
在文件中添加如下内容:basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
server_id = 1
socket = /var/lib/mysql/mysql.sock
这一步很重要,需要更改该配置文件的所有者:chown -R mysql:mysql /usr/local/mysql/my.cnf 否则下面启动mysql服务会报错;
注意:注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会到你安装的mysql目录找,在本例中就是 /usr/local/mysql/my.cnf。注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会可能会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。 重命名的命令是:mv my.cnf my.cnf.bak
13.添加mysql到开机启动项,并启动mysql服务
cp support-files/mysql.server /etc/init.d/mysqld #复制脚本
chmod +x /etc/init.d/mysqld #增加可执行权限
chkconfig --add mysqld #增加至sysV服务
chkconfig mysqld on #开机自启动
service mysqld start #启动mysql服务
netstat -aux|grep mysq #查看启动的mysql进程
注意:
service mysqld start #启动mysql服务 如果报如下错:
Starting MySQL...The server quit without updating PID file [失败]local/mysql/data/localhost.learn.pid).
解决方法之一:
此时:ps -ef | grep mysql 看是否进程里已经存在mysql进程
如果有进程,用kill -9 进程号(第二个位置上的数字)
然后再service mysqld start 启动mysql
其他方法(没试过):
1.可能是/usr/local/mysql/data/guoqing.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /usr/local/mysql/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
3.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
4.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
5.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
6.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
14.添加mysql的环境变量,以方便以后的操作输入密码
命令:vi /etc/profile
在文件的底部添加如下内容:PATH=/usr/local/mysql/bin:$PATH
export PATH
保存退出
输入命令,使配置立即生效:source /etc/profile
15.安装好的mysql,默认root帐户帐户为空,下面我们来修改密码输入命令:mysql -uroot 回车后,然后输入命令:SET PASSWORD = PASSWORD('123456');设置完成后,输入命令:quit; 退出mysql环境;
16.设置好 mysql密码,需要输入如下命令才能够正确登录进mysql:输入命令:mysql -uroot -p 回车后,会提示你输入密码,输入正确并执行后,会看到以mysql>开始的提示行,在这里你可以输入任何有效的sql查询语句:比如输入:show databases; 来显示所有的数据库,注意后面的分号不能丢失,它标识一行命令的结束。至此,恭喜你,mysql安装成功了。