CentOS_5.6下使用cmake编译MySQL_5.5.11
MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考!
1 mysql 5.5.11编译安装
1.1 安装所需要系统库相关库文件
gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
1.2 创建mysql安装目录
[root@localhost mysql-5.5.11]# mkdir -p /usr/local /mysql/
1.3 创建数据存放目录
[root@localhost mysql-5.5.11]# mkdir -p /data/mysql/
1.4 创建用户和用户组与赋予数据存放目录权限
[root@localhost mysql-5.5.11]# groupadd mysql
[root@localhost mysql-5.5.11]# useradd -g mysql mysql
[root@localhost mysql-5.5.11]# chown mysql.mysql -R /data/mysql/
1.5 安装cmake
(mysql5.5以后是通过cmake来编译的)下载解压cmake-2.8.4.tar.gz
[root@localhost mysql-5.5.11]# wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
[root@localhost mysql-5.5.11]# tar zxvf cmake-2.8.4.tar.gz
[root@localhost mysql-5.5.11]# cd cmake-2.8.4
[root@localhost cmake-2.8.4]# ./bootstrap
--------------------------------------------- CMake 2.8.4, Copyright 2000-2009 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: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log ---------------------------------------------
报错:缺少C的编译器。
安装gcc编译器
可以从Linux系统的安装盘中安装,也可以简单地用yum安装
[root@localhost ~]# yum install gcc
继续cmake的安装
[root@localhost cmake-2.8.4]# ./bootstrap
--------------------------------------------- CMake 2.8.4, Copyright 2000-2009 Kitware, Inc. C compiler on this system is: cc --------------------------------------------- Error when bootstrapping CMake: Cannot find appropriate C++ compiler on this system. Please specify one using environment variable CXX. See cmake_bootstrap.log for compilers attempted. --------------------------------------------- Log of errors: /usr/local/src/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log ---------------------------------------------
再次报错:缺少C++编译器。
安装gcc-c++编译器
同样可以从Linux系统的安装盘中安装,或者简单地用yum安装
[root@localhost ~]# yum install gcc-c++
重复上面的操作
[root@localhost cmake-2.8.4]# ./bootstrap
没有报错后,编译安装
[root@localhost cmake-2.8.4]# gmake
[root@localhost cmake-2.8.4]# gmake install
[root@localhost cmake-2.8.4]#./configure
[root@localhost cmake-2.8.4]# make && make install
1.6 安装mysql 5.5.11
[root@localhost mysql-5.5.11]#wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.11.tar.gz
[root@localhost down]# tar zxvf mysql-5.5.11.tar.gz
[root@localhost down]# cd mysql-5.5.11
1.7 编译mysql-5.5.11
[root@localhost mysql-5.5.11]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
上面的命令一次拷进命令行。
若运行上面命令出现如下错误:
*****************************************
-- Could NOT find OpenSSL (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)
-- 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 and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:118 (FIND_CURSES)
cmake/readline.cmake:214 (MYSQL_USE_BUNDLED_READLINE)
CMakeLists.txt:257 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
解决办法:
rm -f CMakeCache.txt
yum -y install ncurses-devel
yum install bison
然后再使用cmake编译就可以了.
****************************************
[root@host mysql-5.5.11]# make
[root@host mysql-5.5.11]# make install
1.8 复制配置文件
[root@mysql-5.5.11]# cp support-files/my-medium.cnf /etc/my.cnf
1.9 初始化数据库
(执行前 需要chmod 755 scripts/mysql_install_db 赋给文件执行权限)
[root@localhost mysql-5.5.11]#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
注:#basedir mysql安装路径 datadir 数据库文件储存路径
1.10.设置mysqld的开机启动
[root@mysql-5.5.11]# cp support-files/mysql.server /etc/init.d/mysql
[root@mysql-5.5.11]# chmod 755 /etc/init.d/mysql
[root@mysql-5.5.11]# chkconfig mysql on
1.11 启动mysql服务
[root@localhost mysql-5.5.11]# /etc/init.d/mysql start //服务器端开关
/etc/init.d/mysql start
Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid). [FAILED] 启动mysql失败
解决Mysql不能启动的问题
安装好MYSQL后启动数据库出错
[root@localhost mysql]# service mysqld start
Starting MySQL..Manager of pid-file quit without updating f[失败]
在网上查了半天,找到的有两种方法,
1、在 my.cnf 中增加了 在server下面
# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
添加下面一行
datadir = /var/lib/mysql/
和
[safe_mysqld]
err-log = /var/log/mysqld.log
pid-file = /var/lib/mysql/localhost.localdomain.pid
重新启动 mysql成功
/usr/local/mysql/var/db1.pid 这个文件名字貌似不能随便指定的
(我指定成了别的是不行的 ,这里的db1是你的hostname)
2、修改改selinux的 我改了 重新启动机器就行了,以下是SELINUX配置文件
[root@localhost selinux]# vi config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
然后重启计算机
[root@localhost ~]# /etc/init.d/mysql restart
Shutting down MySQL. [ OK ]
Starting MySQL.. [ OK ]
启动完成之后用ps -ef |grep mysql 命令查看是否启动
[root@localhost mysql-5.5.11]#/mysql –u root –p //client开关参照1.11一文
2 标准的mysql安装设置
2.1 设置root帐户的密码
[root@localhost mysql-5.5.11]#mysql -u root
>use mysql;
//设置root的密码为‘123’
>update user set password=password('123') where user = 'root';
注意: mysql的用户密码是需要password()函数进行加密的。
-bash: mysql: command not found 解决办法
******************************************
root@DB-02 ~]# mysql -u root
-bash: mysql: command not found
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
# ln -s /usr/local/mysql/bin/mysql /usr/bin
******************************************
2.2 删除本机匿名连接的空密码帐号
本机登录mysql
[root@localhost mysql-5.5.11]#mysql –u root -p
然后输入上面设置的密码,登录后在mysql的命令行中执行:
mysql>use mysql; //选择默认数据库mysql
mysql>update user set password=’root’ where user = '127.0.0.1';
mysql>delete from user where password="";//不允许root密码为空
mysql>flush privileges;
mysql>quit
容许root用户是远程登录
对于root账号,如果考虑安全应该新建其他账号用于远程登录,root账号可以不必开启远程登录。不过对于一般使用,没有太多安全需求,允许root用户远程登录可以方便管理,毕竟使用专用管理软件的图形界面在操作方面要方便的多。
3 实现MySQL远程连接的实际操作流程
3.1 mysql 数据库端设置
[root@localhost mysql-5.5.11]#/mysql –u root –p //进入数据库
mysql>use mysql
mysql>select user,password,host from user;
mysql>update user set host = '192.168.%' where user = '127.0.0.1';
mysql>grant all privileges on *.* to root@'%' identified by "root";//给以root@ip登录的远程连接赋予权限,能够连接数据库。远程无法连接的常见问题原因。
并把远程登录用户的密码设置为root
mysql> flush privileges;
mysql>quit
3.2 mysql Windows客户端
下载客户端
http://js.newhua.com/down/files/mysql-gui-tools-5.0-r17-win32.zip
mysql官方GUI
设置用户名root 密码为root //上面刚设置好的密码
[root@localhost html]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: No)
无法修改密码
用 service mysqld stop
mysqld_safe --skip-grant-tables &
输入 mysql -uroot -p 回车进入
>use mysq;
> update user set password=PASSWORD("newpass")where user="root"; 更改密码为 newpass
> flush privileges; 更新权限
> quit 退出
service mysqld restart 重启数据库
mysql -uroot -p 新密码进入
真晕,我也就是让这个搞了半天没有进去mysql,在这里做下记录,一是给自己一个提醒,再者如果那位朋友遇到这问题了也好解决
[root@sunxia ~]# cat /var/log/mysqld.log
100705 22:24:04 mysqld started
100705 22:24:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
100705 22:24:04 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibTXsoen' (Errcode: 13)
100705 22:24:04 InnoDB: Error: unable to create temporary file; errno: 13
100705 22:24:04 [ERROR] Can't start server : Bind on unix socket: Permission denied
100705 22:24:04 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.sock ?
100705 22:24:04 [ERROR] Aborting
晕死,mysql起不来,在网上找了半天资料,后来才发现Can't start server : Bind on unix socket: Permission denied这句,
Timeout error occurred trying to start MySQL Daemon.
启动 MySQL: [失败]
[root@sunxia ~]# chown -R mysql:mysql /tmp/
更改权限后起来
4.最后新建数据库用户并授权
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
用户:phplamp 用户数据库:phplampDB
1.新建用户。
//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。
mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功
2.为用户授权。
//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作
/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
//刷新系统权限表。
mysql>flush privileges;
*/
3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;
4.修改指定用户密码。
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
mysql>flush privileges;
CentOS_5.6下使用cmake编译MySQL_5.5.11的更多相关文章
- CentOS_5.6下使用cmake编译MySQL_5.5.11教程
注:资料来自网络 Centos 5.6编译安装mysql 5.5.11 2011年06月24日 星期五 05:33 MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采 ...
- windows下使用cmake编译zlib与libpng libjpeg
win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/, 选择最新版本的windows版本压缩包,进行下载. jpeg ...
- windows10下vscode+cmake编译Qt5代码
概述 本文演示环境: windows10 cmake version:3.18 qt version: 5.14 vscode version: 1.54.1 本文演示环境基于在线模式, 离线使用VS ...
- CentOS下使用cmake编译安装mysql
一.下载安装所必需的依赖包 1.因为高版本mysql都用cmake安装,所以下载cmake wget http://www.cmake.org/files/v3.0/cmake-3.0.1.tar.g ...
- 在ubunt14.04(linux)下利用cmake编译运行opencv程序
今天在电脑上安装好了opencv环境,迫不及待的想写个程序来测试一下.但是在windows下我们用vs等集成开发工具.可是在linux下我们应该怎么办呢? 这里我们用了opencv推荐的cmake来编 ...
- 在 Linux 下用 CMAKE 编译安装 OpenCV 3.2.0
[安装相关软件和库] 1.安装CMAKE:这里使用apt-get来安装; CMAKE 是一个跨平台编译工具,能够输出各种makefile,和project 文件,指导编译器编译,对CMAKE具体的可以 ...
- Centos 6下使用cmake编译安装MariaDB
写在前面 最近在学习Maria DB,为了方便查阅,又为了将所学的知识重新的梳理,特作此随笔一篇,希望过后阅读时能有所感,也希望对大家能够有所帮助. 安装前的准备 大家都知道,在Linux上安装软件一 ...
- Linux下make cmake 编译等啥意思?
写程序大体步骤为: 1.用编辑器编写源代码,如.c文件. 2.用编译器编译代码生成目标文件,如.o. 3.用链接器连接目标代码生成可执行文件,如.exe. 但如果源文件太多,一个一个编译时就会特别麻烦 ...
- windows10下vscode+cmake编译Qt5代码(2)
概述 本文依赖 前文 本文将介绍使用cmake语法屏蔽运行Qt exe的cmd窗口 解决办法 配置VS项目属性, 缺点: cmake重新 configure后,项目属性会重置,再次运行还将出现cmd弹 ...
随机推荐
- 【转】请求处理机制其二:Django中间件的解析
Middleware 开始工作了 get_response 做的第一件事就是遍历处理器的 _request_middleware 实例变量并调用其中的每一个方法,传入 HttpRequest 的实例作 ...
- Vue学习之路---No.7(分享心得,欢迎批评指正)
老规矩,先回顾一下上回的重点: 1.对于input框,若为单选框,如果没有对其设置value,那么其checked的值将在true Or false之间切换:如果设置了value,那么将会切换valu ...
- ad_封装_ads828
module ad_ctrl( clk,rst_n,ad_clk, ad_data,value_x,value_y,q_sig,wren,r_addr,w_addr ); input clk; inp ...
- (转)cacti无图无数据等常见问题排查
推荐阅读:零基础学习Nagios http://www.51ou.com/browse/nagios/52001.htmlNagios安装配置教程 http://www.51ou.com/browse ...
- Android 中基于 Binder的进程间通信
摘要:对 Binder 工作机制进行了分析. 首先简述 Android 中 Binder 机制与传统的 Linux 进程间的通信比较,接着对基于 Binder 进程间通信的过程分析 最后结合开发实例 ...
- 认识J2SE
1. J2SE的定义 J2SE:全称为Java 2 Standard Edition.Java 2平台包括:标准版(J2SE).企业版(J2EE)和微缩版(J2ME)三个版本. J2SE主要包括UI. ...
- Python全栈开发第14天
字符编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill) ASCII(American Standard Code for Information Interc ...
- 20155214 2016-2017-2 《Java程序设计》第5周学习总结
20155214 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.错误会被包装为可抛出的对象,继承自java.lang.Throwable类. 2.可以利 ...
- AspectJ基本用法
参考:深入理解Android之AOP AOP虽然是方法论,但就好像OOP中的Java一样,一些先行者也开发了一套语言来支持AOP.目前用得比较火的就是AspectJ了,它是一种几乎和Java完全一样的 ...
- 老李推荐: 第14章2节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-HierarchyViewer架构概述
老李推荐: 第14章2节<MonkeyRunner源码剖析> HierarchyViewer实现原理-HierarchyViewer架构概述 HierarchyViewer库的引入让M ...