Ubuntu14.04编译安装MySQL5.6.16

前言:

  MySQL5.X系列的源码安装有了一些小变化,编译源码的时候不再使用configure,换成了cmake

准备工作:

  1. make bison g++ build-essential libncurses5-dev
  2. 编译安装cmake
    wget https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz
    tar -zxvf cmake-3.10.1.tar.gz 
    cd cmake-3.10.1
    ./bootstrap 
    make && make install
  3. 设置用户、用户组和目录权限
    sudo groupadd mysql
    sudo useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
    sudo mkdir –p /usr/local/mysql #创建MySQL安装目录
    sudo mkdir -p /usr/local/mysql/data #创建MySQL数据库目录
    sudo mkdir -p /usr/local/mysql/log #创建MySQL日志
    sudo chown -R mysql:mysql /usr/local/mysql/data #更改权限
    sudo chown -R mysql:mysql /usr/local/mysql #更改权限

开始安装MySQL:

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
tar -zxvf mysql-5.6.16.tar.gz 
cd mysql-5.6.16
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/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=/tmp/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
make && make install

CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql 

DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
WITH_COMMENT:指定编译备注信息
WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,
MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
MYSQL_DATADIR:数据文件目录
MYSQL_TCP_PORT:服务端口号,默认3306
MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock

创建服务:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

创建命令软连接,设置环境变量: 

ln -s /usr/local/mysql/bin/mysql /usr/bin/

初始化数据库:

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --user=mysql

配置文件:vi /usr/local/mysql/my.cnf

[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8
 
[mysqld]
port=3306
bind-address=127.0.0.1
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
############# default settings  ################
# time zone
default-time-zone = system
character-set-server = utf8
default-storage-engine = InnoDB
 
#[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/lib/mysql/mysqld.pid

 启动数据库:/etc/init.d/mysql start

初始化密码: /usr/local/mysql/bin/mysqladmin -u root password ******

登录数据库:mysql -u root mysql -p

更改密码:

/etc/init.d/mysql stop
#下面方式为了绕过root
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
#此时重新打开一个scrt窗口,使用下面命令登录安全模式下的mysql
mysql -u root mysql -p
mysql>use mysql;
mysql>update user set Password=password('newpassword') where User='root'; 
mysql>flush privileges;
#退出,重新启动mysql服务即可

 

posted @ 2017-12-15 15:26  pynet  阅读(495)  评论(0编辑  收藏  举报