linux下mysql安装

记下自己安装mysql的过程:

wget http://cdn.mysql.com/Downloads/MySQL-5.1/mysql-5.1.63.tar.gz

tar zvxf mysql-5.1.63.tar.gz

cd mysql-5.1.63

# 新版本的mysql默认不带innodb故要加参数 -with-plugins=innobase  参见http://blog.prosight.me/index.php/2009/06/82
./configure --prefix=/xxx/mysql-5.1.63 --sysconfdir=/xxx/etc/lib --localstatedir=/xxxx/lib/mysql -with-plugins=innobase && make && make install

说明:

--prefix    指明将要安装的路径

--sysconfdir 指明mysql启动时加载的配置文件(my.cnf)路径目录

--localstatedir 指明变量存放目录

这三个参数都是为了确保后面安装成功后能访问这些目录,因为安装mysql不一定需要linux系统root权限。我这个例子的情况就是这样,我没有远程主机root权限,我只对某个目录有777权限,所以在这里指明三个个路径参数,并保证对这三个目录有足够的权限。

这一不下来后就要安装数据库了:

/xxx/mysql-5.1.63/bin/mysql_install_db

配置my.cnf:

首先选择一个模板拷贝到前面指明的--sysconfdir路径中

cp /xxx/mysql-5.1.63/share/mysql/my-medium.cnf /xxx/etc/lib/my.cnf

这里我选择了my-medium.cnf 这个配置模板,要对其进行修改:

1 修改端口,

2 修改socket 路径到具有777权限的路径下 如/tmp/sockt改为  /xxx/tmp/socket

3 将innodb的注释反注释掉。

再就可以启动了,默认的root是没有密码的:

/xxx/mysql-5.1.63/bin/mysqld_safe --user=root & 

这样可以启动mysql了,它的日志打在了=/xxxx/lib/mysql /xxxxx.err 中(启动提示写明了),可以据此日志分析问题。

上面的 命令可加参数--defaults-extra-file来指定配置文件路径,如:

/xxx/mysql-5.1.63/bin/mysqld_safe --defaults-extra-file=/xxxx/my.cnf --user=root &

这样启动后,应该初始化root密码 :

/xxx/mysql-5.1.63/bin/mysqladmin -u root password root  //此例中初始root用户密码为root

修改密码:

/xxx/mysql-5.1.63/bin/mysqladmin -u'root' -p'oldpasswor' password 'newpassword'

 

下面尝试连接mysql:

mysql client登陆

/xxx/mysql-5.1.63/bin/mysql -u'root' –p'root'

这样就登陆了mysql client,可进行sql操作了。

 

现在想使用heidisql远程登录,结果报1130错误,这是因为默认只允许127.0.0.1 和 localhost登陆的,这些信息配置在mysql.user表中记录。

use mysql;
select `host`,`user` from user where user='root';
发现有三条记录
127.0.0.1
localhost
主机域名

那么我们就添加一条权限,加入允许远程主机ip为10.199.1.18登陆的话:

INSERT INTO user SET Host='10.199.1.18',User='root',Reload_priv='Y', Process_priv='Y';
update user set Password = PASSWORD('root'),Select_priv='Y',Insert_priv = 'Y', Update_priv = 'Y', Delete_priv = 'Y', Create_priv = 'Y', Drop_priv = 'Y', Reload_priv = 'Y', Shutdown_priv = 'Y', Process_priv = 'Y', File_priv = 'Y', Grant_priv = 'Y', References_priv = 'Y', Index_priv = 'Y', Alter_priv = 'Y', Show_db_priv = 'Y', Super_priv = 'Y', Create_tmp_table_priv = 'Y', Lock_tables_priv = 'Y', Execute_priv = 'Y', Repl_slave_priv = 'Y', Repl_client_priv = 'Y', Create_view_priv = 'Y', Show_view_priv = 'Y', Create_routine_priv = 'Y', Alter_routine_priv = 'Y', Create_user_priv = 'Y', Event_priv = 'Y', Trigger_priv = 'Y' where `Host`='50.87.25.233';
FLUSH PRIVILEGES;

注意,密码一定要设置,同一用户每一登陆host的密码可以不同(其实同一用户连权限也可因登陆host 不同而设置不同),否则远程连接会报1045 错误。

 

然后是停止mysql:

/xxx/mysql-5.1.63/bin/mysqladmin shutdown -u'root' -p'root'

 

参见:

http://mysql-tips.blogspot.com/2005/04/setup-new-users-in-mysql.html

http://blog.ureshika.com/archives/815.html


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1