源码安装MySQL5.6

2016-12-14 09:49:17来源:oschina作者:Kdony人点击



# 编译安装MySQL前的准备工作
```
Linux系统:CentOS-6.5_x64
依赖包:yum install gcc gcc-c++ ncurses-devel perl cmake
```
# 设置MySQL组和用户
```
groupadd mysql
useradd -r -g mysql mysql
passwd mysql
```
# 新建MySQL所需要的目录
> 使用mysql用户登录
## 新建mysql安装目录
```
mkdir -p /home/mysql/dbmysql
```
## 新建mysql数据库数据文件目录
```
mkdir -p /home/mysql/data
```
# 下载MySQL源码包并解压
```
tar -zxvf mysql-5.6.27.tar.gz
cd mysql-5.6.27
```
# 编译安装MySQL
## 设置编译参数
```
cmake /
-DCMAKE_INSTALL_PREFIX=/home/mysql/dbmysql /
-DMYSQL_UNIX_ADDR=/home/mysql/dbmysql/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=/home/mysql/data/ /
-DMYSQL_TCP_PORT=3306 /
-DENABLE_DOWNLOADS=0
```
参数|注释
---- | ----
-DCMAKE_INSTALL_PREFIX=dir_name|设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name| 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name|设置服务器的字符集。缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name|设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1|存储引擎选项:MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name|设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num|设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool|是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
注:重新运行配置,需要删除CMakeCache.txt文件
```
rm CMakeCache.txt
```
## 编译源码
```
make
```
## 安装
```
make install
```
# 初始化mysql数据库
```
cd /home/mysql/dbmysql
scripts/mysql_install_db --user=mysql --datadir=/home/mysql/data/
```
# 复制mysql服务启动配置文件
```
sudo cp /home/mysql/dbmysql/support-files/my-default.cnf /etc/my.cnf
```
注:
- 如果/etc/my.cnf文件存在,则覆盖。
- 这里要使用sudo命令,故要切换到root用户,执行
```
vim /etc/sudoers 添加 mysql ALL=(ALL) ALL
```
# 复制mysql服务启动脚本及加入PATH路径
```
sudo cp support-files/mysql.server /etc/init.d/mysqld
```
```
vim /etc/profile
exportPATH=/home/mysql/dbmysql/bin:/home/mysql/dbmysql/lib:$PATH
```
```
source /etc/profile
```
# 启动mysql服务并加入开机自启动
```
service mysqld start
sudo chkconfig mysqld on
```
# 检查mysql服务是否启动
```
netstat -tulnp | grep 3306
mysql -u root -p
```
> 说明:密码为空,如果能登陆上,则安装成功
# 修改MySQL用户root的密码
```
mysql> set password=password('123456');
```
# 允许远程登录
```
mysql> use mysql
mysql> desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
mysql> update user set Password = password('123456') where User='root';
mysql> select Host,User,Password from user where User='root';
mysql> flush privileges;
mysql> exit
```
# 配置字符集
```
vim /etc/my.cnf
[client]
password = 123456
port = 3306
socket =/home/mysql/dbmysql/mysql.sock
default-character-set=utf8[mysqld]
port = 3306
socket =/home/mysql/dbmysql/mysql.sock
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
#(注意linux下mysql安装完后是默认:表名区分大小写,列名不区分大小写; 0:区分大小写,1:不区分大小写)
lower_case_table_names=1
#(设置最大连接数,默认为 151,MySQL服务器允许的最大连接数16384; )
max_connections=1000
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysql]
default-character-set = utf8
```

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台