mysql源码编译安装以及初始设置

记性不好,从网上转来的,源网址已经记不清了,sorry



安装步骤:


1.解压mysql-5.0.20a.tar.gz.

命令: tar -zxvf mysql-5.0.20a.tar.gz

2.配置 mysql

命令:./configure --prefix=/test/mysql --with-charset=gbk

常用的选项有如下

--prefix=/home/opt/mysql
--enable-assembler
--enable-profiling
--with-mysqld-user=mysql
--with-plugins=innobase,myisam
--with-charset=utf8
--with-named-curses-libs=/usr/lib/libncurses.so.5



说明:安装到/text/mysql下,语言用gbk.当然用别的也行,还有其它参数可以查看相关文档.

3.编译,安装

命令:

make

make install

这两个命令发的时间较长.

4.创建用户和组.

groupadd mysql

useradd -g mysql mysql

5.进入mysql目录.创建var目录.并把./share/mysql/my-medium.cnf 拷到mysql目录下并改名为my.cnf.

>mkdir var

>mv share/mysql/my-medium.cnf my.cnf

6.配置my.cnf

配置主要把安装的目录的那几项打开就行.

改动如下:

[client]
#password = your_password
port = 3306
socket = /tmp/mysql3306.sock

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql3306.sock

打开下面几项

innodb_data_home_dir = /test/mysql/var/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /test/mysql/var/
innodb_log_arch_dir = /test/mysql/var/

7.安装数据库

命令:./bin/mysql_install_db --defaults-file=/test/mysql/my.cnf --user=mysql

说明:必须用参数--defaults-file指定my.cnf,否则系统用默认的/etc/my.cnf.

8.安装完后,可以看到mysql/var目录下有数据文件,然后用下面命令设置权限:

shell> chown -R root .
shell> chown -R mysql var
shell> chgrp -R mysql .

9.启动数据库.

./bin/mysqld_safe --defaults-file=/test/mysql/my
.cnf --user=mysql &

10.进入数据库.

./bin/mysql -u root --socket=/tmp/mysql3306 --defaults-file=/test/mysql/my.cnf

默认时没有密码,当然如果你删除/etc/my.cnf,可以不要后面的--defaults-file=/test/mysql/my.cnf
./bin/mysql -u root --socket=/tmp/mysql3306 也就行了,原因大家应该知道吧!^_^!

11.设为服务并自启动.

对于设置为服务只要把mysql/share/mysql/mysql.server放到/etc/init.d/下改名为mysql

命令:

mv share/mysql/mysql.server /etc/init.d/mysql

chmod 775 /etc/init.d/mysql

chkconfig --add mysql

总结,这只是安装了一个3306端口的mysql,如果要在装一个msyql,步骤一样,只要改动my.cnf文件的内容.

[client]
#password = your_password
port = 3310
socket = /tmp/mysql3310.sock

# The MySQL server
[mysqld]
port = 3310

socket = /tmp/mysql3310.sock





===========================================



用root用户登陆,然后:
grant all privileges on *.* to 创建的用户名 @"%" identified by "密码";
flush privileges;   * 刷新刚才的内容*
格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by "用户密码";
            @ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。

同时也可以为现有的用户设置是否具有远程访问权限。如下:
use mysql;
update db set host = '%' where user = '用户名'; (如果写成 host=localhost 那此用户就不具有远程访问权限)
FLUSH PRIVILEGES;

查看结果,执行:
   use mysql;
   select host,user,password from user;

其实在phpadmin那里新添用户时就是在主机那一项选任意主机 再填上“%”
郁闷的发现,在另一台mysql服务器上(用ubuntu server8.04光盘安装的LAMP),以上的方法好像用不了。
========================================
另一种方法
用SSH 远程连接,但这种方法要示目标主要安装Openssh server 所以在使用上受到一定的限制(有些空间服务商的主机上没有这ssh server),但对于安全性来说,却是提高了。


删除权限:

 revoke insert,update,delete,select ON *.* from 'xbb'@'localhost' IDENTIFIED BY '123';

删除用户:

drop user 'xbb'@'localhost';

你可能感兴趣的:(mysql源码编译安装以及初始设置)