Linux--MySQL源码安装及配置
上篇博客http://blog.xiaoxiaomo.com/2016/02/22/Linux-软件安装之Mysql/,使用了一种相对比较简单的安装方式。本片博客,在讲解另外一种安装方式。
准备
- 下载地址Cmake:http://www.cmake.org/cmake/resources/software.html
- 下载地址Mysql:http://www.mysql.com
- 博主下载了版本分别为:mysql-5.5.40 linux.tar.gz和cmake-3.0.2.tar.gz(这里提供了下载)
安装
- 1.先安装cmake
1
2
3
4
5
6[root@iZ94r8hgrjcZ up]# tar -zxvf cmake-3.0.2.tar.gz
[root@iZ94r8hgrjcZ up]# mv cmake-3.0.2 /opt/
[root@iZ94r8hgrjcZ up]# cd /opt/cmake-3.0.2/
[root@iZ94r8hgrjcZ cmake-3.0.2]# ./configure ##如报错,请看下面解决办法
[root@iZ94r8hgrjcZ cmake-3.0.2]# make
[root@iZ94r8hgrjcZ cmake-3.0.2]# make install
问题一:1
2
3
4
5
6
7
8
9
10
11
12[root@iZ94r8hgrjcZ cmake-3.0.2]# ./configure
---------------------------------------------
CMake 3.0.2, Copyright 2000-2014 Kitware, Inc.
---------------------------------------------
Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /opt/cmake-3.0.2/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
解决办法:
1 | 1. ##安装gcc环境 |
2.创建mysql的安装目录及数据库存放目录
1
2[root@iZ94r8hgrjcZ opt]# mkdir -p /opt/mysql //安装mysql
[root@iZ94r8hgrjcZ opt]# mkdir -p /opt/mysql/data //存放数据库3.创建mysql用户及用户组
1
2[root@iZ94r8hgrjcZ opt]# groupadd mysql
[root@iZ94r8hgrjcZ opt]# useradd -r -g mysql mysql4.安装mysql
1
2
3
4
5[root@iZ94r8hgrjcZ up]# tar -zxvf mysql-5.5.40\ linux.tar.gz
[root@iZ94r8hgrjcZ up]# cd mysql-5.5.40
[root@iZ94r8hgrjcZ mysql-5.5.40]# cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 //注意:上面是一条命令
[root@iZ94r8hgrjcZ mysql-5.5.40]# make
[root@iZ94r8hgrjcZ mysql-5.5.40]# make install5.问题解决(博主报了如下错误)
错误一: 在cmake时,出现如下错误:1
2
3
4
5
6
7
8
9-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat andevel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:369 (MYSQL_CHECK_READLINE)
解决办法:1
2
3yum -y install ncurses-devel
yum -y install bison
make && make install #编译完成
错误二: 在make时,出现了如下错误:1
make: *** No targets specified and no makefile found. Stop.
解决办法:1
2
3
4
5
61、wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
2、tar zxvf ncurses-5.6.tar.gz
3、cd ncurses-5.6
4、 ./configure -prefix=/opt -with-shared -without-debug
./configure --with-shared --without-debug --with-ticlib
5、make && make install
注意:如果执行cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
还是报错:1
2
3
4
5
6remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev,
on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:257 (MYSQL_CHECK_READLINE)
记得清除旧的对象文件和缓存1
2# make clean
# rm -f CMakeCache.txt
- 6.参数说明:
-DCMAKE_INSTALL_PREFIX=/opt/mysql //安装目录
-DINSTALL_DATADIR=/opt/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
配置
- 一、设置目录权限
1 | [root@iZ94r8hgrjcZ mysql-5.5.40]# cd /opt/mysql/ |
- 二、将mysql的启动服务添加到系统服务中
1 | [root@iZ94r8hgrjcZ mysql]# cp support-files/my-medium.cnf /etc/my.cnf //my-medium.cnf不仅限于这一个文件 |
- 三、创建系统数据库的表
1 | [root@iZ94r8hgrjcZ mysql]# cd /opt/mysql |
四、设置环境变量
1
2
3
4
5
6
7
8
9
10[root@iZ94r8hgrjcZ mysql]# vi /etc/profile
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /opt/mysql/bin/##添加行
fi
[root@iZ94r8hgrjcZ mysql]# source /etc/profile五、将mysql添加到系统服务中
1
[root@iZ94r8hgrjcZ mysql]# cp support-files/mysql.server /etc/init.d/mysqld //将mysql的启动服务添加到系统服务中
六、启动mysql的方法(mysql已经被添加到系统服务中)
1
2
3
4[root@iZ94r8hgrjcZ mysql]# service mysql start //启动mysql服务
***********************************************
[root@iZ94r8hgrjcZ mysql]# service mysql stop //停止mysql服务
[root@iZ94r8hgrjcZ mysql]# service mysql restart //重启mysql服务七、修改MySQL的root用户的密码以及打开远程连接
1 | [root@iZ94r8hgrjcZ mysql]# mysql -u root -p |
八、设置开机启动
1
[root@iZ94r8hgrjcZ mysql]# chkconfig --level 345 mysql on //设置开机启动(取消开机启动:把 on 改为 off)
九、修改mysql的最大连接数
mysql默认安装的最大连接数是100。100一般是不够用的。要增大连接数,要怎样增加呢?
1 | [root@iZ94r8hgrjcZ mysql]# vi /etc/my.cnf |
检测:
1 | [root@iZ94r8hgrjcZ mysql]# service mysql restart //重启mysql服务 |
- 十、查看修改mysql编码方式
MySQL的默认编码是Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为gbk或者utf8(java的一般都是用utf-8,乱码问题蛋疼啊,我就用utf-8演示)。
需要以root用户身份登陆才可以查看数据库编码方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)停止mysql服务
1
2[root@iZ94r8hgrjcZ etc]# service mysql stop
Shutting down MySQL. [ OK ]编辑my.cnf
1 | [root@iZ94r8hgrjcZ etc]# vi /etc/my.cnf |
- 检查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[root@iZ94r8hgrjcZ etc]# service mysql start
Starting MySQL.. [ OK ]
[root@iZ94r8hgrjcZ etc]# mysql -u root -p
Enter password:
mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /opt/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)