Centos环境下mysql源码编译安装



yum -y install gcc gcc-c++ ncurses-devel perl

##从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本。
wget --no-check-certificate  https://cmake.org/files/v2.8/cmake-2.8.12.tar.gz
tar -zxvf cmake-2.8.12.tar.gz
cd cmake-2.8.12
./bootstrap  && make && make install

mkdir -p /usr/local/mysql

tar -zxvf mysql-5.6.37.tar.gz
cd mysql-5.6.37
/usr/local/bin/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/data2/mysqldb -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3308 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DMYSQL_USER=mysql -DWITH_DEBUG=0
rm CMakeCache.txt   #试验删不删除的影响,试过没删除也没影响
make
make install

mkdir -p /data2/mysqldb
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /data2/mysqldb

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
chown mysql:mysql /etc/my.cnf
##my.cnf重新配置参数,编译阶段的参数没写到这个配置文件去。
#文件配置
vim /etc/my.cnf
basedir =/usr/local/mysql
datadir =/data2/mysqldb
port =3308
# server_id = .....
socket =/usr/local/mysql/data/mysql.sock

[mysqld_safe]
log-error=/usr/local/mysql/log/mysqld.log
pid-file=/usr/local/mysql/run/mysqld/mysqld.pid

default-storage-engine=MyISAM
server-id       = 1
innodb_buffer_pool_size = 21M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

#Because the MySQL server, mysqld, must access the data directory when it runs later, you should either run mysql_install_db from the same system account that will be used for running mysqld
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data2/mysqldb

##指定配置文件
##/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data2/mysqldb --defaults-file=/usr/local/mysql/my.cnf

mkdir -p /usr/local/mysql/log
chown mysql:mysql /usr/local/mysql/log/
mkdir -p /usr/local/mysql/run/mysqld/
chown -R mysql:mysql /usr/local/mysql/run/mysqld/
touch /usr/local/mysql/log/mysqld.log
chown mysql:mysql /usr/local/mysql/log/mysqld.log


#To start a second server, provide different --socket and --port option values, and pass a --datadir=dir_name option to mysqld_safe so that the server uses a different data directory.
mysqld_safe --socket=file_name --port=port_number --defaults-file=/usr/local/mysql/my.cnf


#安全模式启动
/usr/local/mysql/bin/mysqld_safe --socket=/usr/local/mysql/data/mysql.sock --port=3308 --defaults-file=/usr/local/mysql/my.cnf

#开启mysql服务
/usr/local/mysql/support-files/mysql.server start

#密码为空,如果能登陆上,则安装成功
/usr/local/mysql/bin/mysql -u root -p

或自定义带sock文件
/usr/local/mysql/bin/mysql -uroot -p -S /usr/local/mysql/data/mysql.sock

后续步骤:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld-lastest   
vim /etc/profile   
  MYSQL_PATH=/usr/local/mysql/bin:/usr/local/mysql/lib
 export MYSQL_PATH 

source /etc/profile
##添加到系统运行级别
chkconfig --level 35 mysqld on
##查看端口占用
netstat -antlp | grep 3308

#修改密码
mysqladmin -u root password '123456'


/usr/local/mysql/bin/mysqld_safe --skip-grant-tables

问题:   
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)   
解决:   
新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。   
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock   
/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值