您的位置:首页 > 运维架构 > Linux

Linux下mysql源码安装

2015-07-02 16:42 465 查看
1.装备安装包并安装,由于mysql5.5以后是通过cmake来编译的

下载cmake http://www.cmake.org/download/ 下载mysql http://dev.mysql.com/downloads/mysql/
(1)安装cmake
#tar -zxvf cmake-3.3.0-rc2
#cd cmake-3.3.0-rc2
#./configure
#make
#make install


(2)创建mysql的安装目录及数据库存放目录
#madir -p /usr/local/mysql   #mysql安装目录
#mkdir -p /data/mysql/data   #存放数据库文件目录


(3)创建mysql用户及用户组
#groupadd mysql  #新建mysql用户组
#useradd -r -g mysql mysql #新建系统用户mysql并指定mysql用户组


(4)安装mysql
#tar -zxvf mysql-5.6.25.tar.gz
# cd mysql-5.6.25
#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #安装路径
-DMYSQL_DATADIR=/data/mysql/data   \   #数据文件存放位置
-DSYSCONFDIR=/etc         \     #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1    \         #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \       #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \          #支持Memory引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      \   #连接数据库socket路径
-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


---提示错误01----
Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (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 and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:128 (FIND_CURSES)
cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:409 (MYSQL_CHECK_EDITLINE)

那就是ncurses未安装
下载 http://ftp.gnu.org/pub/gnu/ncurses/
#tar zxvf ncurses-5.9.tar.gz
# cd ncurses-5.9
# ./configure
# make
# make install
---提示错误02----
Warning: Bison executable not found in PATH

这是未安装Bison
下载:http://ftp.gnu.org/gnu/bison/
# tar -zxvf bison-3.0.tar.gz
# cd bison-3.0
# ./configure
# make
# make install
完成后再重新走(4)的步骤
------------

2.配置
(1)设置目录权限
# cd /usr/local/mysql/
# chown -R root:mysql .
# chown -R mysql:mysql /data/mysql/data


(2)添加配置文件
# cp support-files/my-default.cnf /etc/my.cnf #将mysql的启动服务添加到系统服务中


(3)创建系统数据库的表
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data/
如果报[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option
(see documentation for more details).错误
# vim /etc/my.cnf  找到[mysqld]设置项,添加以下代码:
explicit_defaults_for_timestamp=true #开启查询缓存


(4)设置环境变量
# vi /root/.bash_profile


在PATH=$PATH:$HOME/bin添加参数为:
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
#source /root/.bash_profile


(5)手动启动mysql
# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &   #启动MySQL,但不能停止
#ps -ef | grep mysql #测试MySQL是否启动
#netstat -tnl | grep 3306#查看端口是否运行
启动日志写在此文件下:/data/mysql/data/hostname.err
关闭MySQL服务
#./bin/mysqladmin -u root -p shutdown #关闭


(6)配置命令启与开机启动
# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysql #将mysql的启动服务添加到系统服务中,其中服务名称为mysql
# service mysql start #启动
# service mysql stop  #关闭
# service mysql restart #关闭
# chkconfig --add mysql   #添加开机启动
# chkconfig mysql off    #取消开机启动


(7)修改root密码并开启远程连接
#mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码';  #为root添加远程连接的能力。
mysql>update user set Password = password('密码') where User='root';
mysql>select Host,User,Password  from user where User='root';
mysql>flush privileges;
mysql>exit
重新登录:mysql -u root -p

若还不能进行远程连接,则关闭防火墙
# /etc/rc.d/init.d/iptables stop


注:如果不能远程连接,出现错误mysql error number 1130,则加入下面语句试试:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;


MYSQL权限详细分类:
全局管理权限:
FILE: 在MySQL服务器上读写文件。
PROCESS: 显示或杀死属于其它用户的服务线程。
RELOAD: 重载访问控制表,刷新日志等。
SHUTDOWN: 关闭MySQL服务。
数据库/数据表/数据列权限:
ALTER: 修改已存在的数据表(例如增加/删除列)和索引。
CREATE: 建立新的数据库或数据表。
DELETE: 删除表的记录。
DROP: 删除数据表或数据库。
INDEX: 建立或删除索引。
INSERT: 增加表的记录。
SELECT: 显示/搜索表的记录。
UPDATE: 修改表中已存在的记录。
特别的权限:
ALL: 允许做任何事(和root一样)。
USAGE: 只允许登录--其它什么也不允许做。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息