mysql安装:参考文章1
mysql编译报错:参考文章2
1、首先,创建目录,输入命令:
mkdir /usr/local/mysql mkdir /usr/local/mysql/data
2、接着,进入/usr/local/mysql目录,下载mysql5.6的压缩包,输入命令:
cd /usr/local/mysql wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz
注:如果没有安装wget,请执行命令:yum install wget
3、yum方式安装相关依赖包,输入命令:
yum -y install cmake bison git ncurses-devel gcc gcc-c++
4、创建一个用户名为mysql的用户并加入mysql用户组,输入命令:
groupadd mysql useradd -g mysql mysql
5、解压mysql-5.6.22.tar.gz,输入命令:
tar zxvf mysql-5.6.22.tar.gz
6、进入解压后的目录,开始编译,可能有点慢,输入命令:
cd mysql-5.6.22 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1 make
(1)、make的过程,可能会出现问题,我这边报了一个错误,如下图所示:
(2)、解决办法:修改sql_acl.cc文件,找到报错的那一行,第3215行,把单引号改成双引号,输入命令:
vi /usr/local/mysql/mysql-5.6.22/sql/sql_acl.cc
修改后如下图所示:
(3)、保存之后,重新执行以下命令:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1 make
7、安装,安装完成后,清理临时数据,输入以下命令:
make install make clean
8、修改目录属主权限,输入命令:
chown -R mysql:mysql /usr/local/mysql/data/ chown -R mysql:mysql /usr/local/mysql/
9、创建MySQL Server系统表
(1)、输入命令:
cd /usr/local/mysql/ scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
(2)、此处报错,如下图所示:
(3)、解决办法,安装autoconf库:
yum -y install autoconf
(4)、安装完成后,重新执行命令:
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
(5)、把初始化生成的 /usr/local/mysql/my.cnf 配置文件的属主数组更改为mysql
chown -R mysql:mysql /usr/local/mysql
10、配置脚本启动
(1)、复制mysql启动shell脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
(2)、启动MySQL,输入命令:
/etc/init.d/mysql status /etc/init.d/mysql start
(3)、启动成功
11、根据需要设置开机自动启动服务,依次输入以下命令:
chkconfig --add mysql chkconfig mysql on
12、设置mysql的软连接,输入命令:
ln -s /usr/local/mysql/bin/mysql /usr/bin
13、设置数据库密码
(1)、输入命令:
mysql -uroot -p
默认密码为空,直接按回车键
(2)、进入mysql命令行,输入命令:
set password for root@localhost = password('123456'); flush privileges;
(3)、输入exit,退出命令行,重新输入命令:
mysql -uroot -p
输入刚才设置的密码,就登录进来了。
14、接着用mysql管理工具,远程连接的时候,出现了MySQL 1130错误,解决办法:
(1)、进入mysql命令行,输入以下命令:
use mysql; update user set host = '%' where user ='root';
(2)、接着,可能会报错,ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’
(3)、查看一下host是否已经有了%这个值,有了就可以了,输入命令:
select host,user from user where user='root';
(4)、接着刷新一下,输入命令:
flush privileges;
15、 这时,mysql就已经装好了,其中遇到了一些问题,比如像这个问题:
Starting MySQL.The server quit without updating PID file (/[FAILED]mysql/
根据网上资料整了一下,发现还是一直这样,于是,进行了以下的操作:
(1)、删除/usr/local/mysql/data目录下的所有文件
(2)、删除/usr/local/mysql目录下的my.cnf文件
(3)、删除/etc/my.cnf文件
(4)、重新执行了以下命令:
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data chown -R mysql:mysql /usr/local/mysql cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
(5)、后面发现/etc/my.cnf不会生成了,重新启动mysql服务成功,我也不知道是什么情况了,接着按照上面的操作配置就行了,也不知道是不是环境不一样还是怎样,跟之前我搭的好像又不太一样,后面再看看了,搭了那么久。。绝了。。