记性不好,从网上转来的,源网址已经记不清了,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),但对于安全性来说,却是提高了。