服务器:CentOS6.3 x86-64

数据库:MySQL-server-5.5.25a-1.sles11.x86_64

cmake:cmake-2.8.4.tar ....CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)

一、安装cmake编辑器。

(1)解压cmake.  #tar -zvxf cmake-2.8.4.tar.gz 

(2)配置编译。


#cd cmake-2.8.4


#yum -y install gcc


#yum -y install gcc-c++


#yum -y install ncurses-devel


#./configure


#make


#make install

当我#make时候提示无效命令。yum install make,安装之后再 ./configure,然后是各种执行过程。执行完之后,再 make这次有反应了,继续等待执行。然后是 make install ,再次等待执行。这次估计都成功了。下面开始安装mysql.

二、安装Mysql。

千辛万苦再CSDN上面下载了两个rpm的安装文件,但是安装不成功,

aaa_base is needed by MySQL-server-5.5.25a-1.sles11.x86_64 

pwdutils is needed by MySQL-server-5.5.25a-1.sles11.x86_64 

/usr/bin/perl is needed by MySQL-server-5.5.25a-1.sles11.x86_64

(1)tar版的安装。摘抄的命令
 #mkdir /usr/local/mysql
 #mkdir /usr/local/mysql/data
 #cd /usr/local/src/mysql-5.5.27
 #cmake . \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DINSTALL_DATADIR=/usr/local/mysql/data \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DEXTRA_CHARSETS=all \
 -DENABLED_LOCAL_INFILE=1 参数说明:
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录
 -DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
 -DDEFAULT_CHARSET=utf8                        //使用utf8字符
 -DDEFAULT_COLLATION=utf8_general_ci            //校验字符
 -DEXTRA_CHARSETS=all                            //安装所有扩展字符集
 -DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据

#make

#make install

(2)设置目录权限。


# cd /usr/local/mysql

# chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql

# chown -R mysql:mysql data

(3)配置文件。


# cp support-files/my-medium.cnf /etc/my.cnf //这个配置仅适合小内存系统(32M - 64M)

打开如下注释:

innodb_data_home_dir = /usr/local/mysql/data
 innodb_data_file_path = ibdata1:10M:autoextend
 innodb_log_group_home_dir = /usr/local/mysql/data innodb_buffer_pool_size = 16M
 innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M
 innodb_log_buffer_size = 8M
 innodb_flush_log_at_trx_commit = 1
 innodb_lock_wait_timeout = 50添加默认字符集:
 [client] 
default-character-set = utf8    // 添加编码支持
 [mysqld]
default-character-set = utf8   // 添加编码支持
 max_connections = 10000     //根据服务器性能调节
basedir = /usr/local/mysql 6)、创建系统数据库的表
 # cd /usr/local/mysql
# scripts/mysql_install_db --user=mysql
 7)、设置权限启动
设置环境变量:
 # vi /root/.bash_profile
 在PATH=$PATH:$HOME/bin添加参数为:
 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
 #source /root/.bash_profile
手动启动MySQL: 
 # cd /usr/local/mysql
 # ./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止
 启动日志写在此文件下:/usr/local/mysql/data/localhost.err
 关闭MySQL服务
 # mysqladmin -u root -p shutdown  //这里MySQL的root用户还没有配置密码,所以为空值。

通过脚本启动MySQL:

# ln -s /usr/local/mysql/support-files/mysql.server /usr/local/mysql
//必须注意,是放在mysql目录下,不是bin目录下
# cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql 
 # mysql.server start //启动mysql
 # mysql.server stop //停止mysql在引导时启动MySQL
 # ln -s /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
/usr/local/mysql/mysql.server /etc/rc.d/init.d/mysql 
 # cd /etc/rc.d/init.d
 # chkconfig --add mysql       //配置是否自动启动, chkconfig --del mysql 可删除
 # chmod +x /etc/rc.d/init.d/mysql    //添加如执行权限

三、给mysql配置权限。

测试时候直接用的root用户来连接的服务器,结果连接不上,解决之后才想到,为什么要让root用户连接服务器啊。悲催的再改回去,中间还有,貌似root用户不用输入密码就能访问。赶紧去掉root用户直接访问权限。

 vi /etc/sysconfig/iptables,在系统配置里面去掉了下面这段,本来是我添加的。

-A RH-Firewall-1-INPUT -p tcp --dport 3306 -j ACCEPT


重启service iptables restart。 OK,root只能本地连接数据库了。

附上允许root远程访问的方法。 这篇文章很详细。

其实我用的只有这两步 。

1)下面给mysql新建一个账号:insert into mysql.user(host,user,password) value ('%','name',PASSWORD('password'));

2)更新密码

3)授予权限 mysql>grant all on neuzjs.* to jason@'%' identified by 'jason';其中neuzjs为数据库名;

4)刷新权限


例1、增加一个用户user001密码为123456,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:


mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by "123456";

 

例2、增加一个用户user002密码为123456,让此用户只可以在localhost上登录,也可以设置指定IP,并可以对数据库test进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机)

        //这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过MYSQL主机来操作test库。
        //首先用以root用户连入MySQL,然后键入以下命令:


mysql>grant select,insert,update,delete on test.* to user002@localhost identified by "123456";

这两个命令很好用,收藏下。


今天就这样了,下班撤退了。