从源码编译nginx php mysql之——mysql5.6.24安装
网上关于mysql5.6 的安装教程很多,但是我在按照他们的教程安装的时候,总是会遇到各种问题,但是作者并没有指出解决办法,然后各种google之后,参考所有人的过程,终于安装成功,记录下来!
1 下载MySQL5.6源码包,然后我是解压到/home/cg/my/myapp/下面。
2 mysql 从5.5版本之后不是用./configure ,而是用cmake,所以需要安装cmake , sudo apt-get instal cmake
3 我是安装在/home/cg/my/server/mysql目录下,我一直也有个疑问为什么大家都喜欢安装到/uer/local下面,这样重装系统之后不就什么都没有了吗??可能所大家都互相抄的原因吧,抄成了习惯。
4 cd //home/cg/my/myapp/mysql-5.6.24
cmake \
-DCMAKE_INSTALL_PREFIX=/home/cg/my/server/mysql \
-=/home/cg/my/server/mysql \
-DMYSQL_DATADIR=/home/cg/my/server/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DEXTRA_CHARSETS=all
如果想知道参数到意思,可以去看官方文档,或者这里有个较为详细到总结:。这里我大概说下意思。
DCMAKE_INSTALL_PREFIX 安装目录
DSYSCONFDIR 配置文件(my.cnf)目录
DMYSQL_DATADIR 数据存储目录
DMYSQL_TCP_PORT TCP/IP端口
DMYSQL_UNIX_ADDR UNIX socket文件
DEXTRA_CHARSETS 扩展字符支持 默认all
5 如果配置报错,可能需要安装libssl-dev,libncurses5-dev,第一次配置报错,第二次配置前,需要删除源码目录下的CMakeCache.txt,再配置。
6 编译,安装
make
make install
7 初始化数据库:
chmod 755 scripts/mysql_install_db
scripts/mysql_install_db –basedir=/home/cg/my/server/mysql/ –datadir=/home/cg/my/server/mysql/data/
8 复制启动脚本,开机自启:
sudo cp /etc/t.d/mysql
sudo chmod 755 /etc/init.d/mysql
9 手动启动
sudo /etc/init.d/mysql start
PS:如果遇到 . * The server quit without updating PID file (/home/cg/my/server/mysql/data/cg-Lenovo-G470.pid).
这样到问题(我遇到过)。
(1)新建运行Mysql的用户和组
sudo groupadd mysql
sudo useradd -g mysql mysql
(2)设置Mysql安装目录的权限
cd /home/cg/my/server/mysql
sudo chown -R mysql:mysql ./
(3)修改配置文件 my.cnf
配置文件在的地方在cmake参数里面
在下面添加
[client]
port = 3306
socket = /home/cg/my/server/mysql/data/mysql.sock
[mysqld]
port = 3306
socket = /home/cg/my/server/mysql/data/mysql.sock
basedir = /home/cg/my/server/mysql
datadir = /home/cg/my/server/mysql/data
OK
sudo mysql start 成功!
10 更改root密码:
/home/cg/my/server/mysql/bin/mysqladmin -u root password ‘123456’
11 启动
sudo mysql start
不过想要直接在终端运行 mysql -u root -p 会提示The program ‘mysql’ can be found in the following packages:
解决办法
$ ‘/home/cg/my/server/mysql/bin/mysql’ -u root -p 即可。
终极解决办法,添加到环境变量就是了,详细步骤不再多说。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。