源码安装MySql的方法

来源:互联网 发布:港湾网络 李一男 编辑:程序博客网 时间:2024/06/04 10:35
 

RedHat 4.7 这个配置文件能编译通过:

 ./configure --prefix=/usr/local/mysql  --enable-thread-safe-client --enable-assembler  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static  --with-charset=gbk


Redhat 4.7 x86_64位上编译通过   (****检查是否安装了rpm包的MySQL)

./configure --prefix=/usr/local/mysql --localstatedir=/data//mysqldata --enable-thread-safe-client --enable-assembler  --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static  --with-charset=gbk

 

make

 

make install

 

 mysqld增加一个登录用户和组:

  shell> groupadd mysql
  shell> useradd -g mysql mysql
进入源码解压目录:
shell> cp support-files/my-medium.cnf /usr/local/mysql /my.cnf

目录权限设置:

     chown   -R  mysql:mysql     /usr/local/mysql 

    

     chown   -R  mysql:mysql     /data/mysqldata

 

 

安装配置完成后,需要初始化,加上mysql用户,和basedir和datadir(******要不然会报错,找不到db.frm*********************)

 

创建授权表:

./mysql_install_db  --user=mysql --basedir=/usr/local/mysql   --datadir=/data/mysqldata

 

 

初始化并启动测试:
 ./mysqld_safe --user=mysql --basedir=/usr/local/mysql   --datadir=/data/mysqldata &   (最后加上“&”)


 账户初始化与密码:

mysql> delete from mysql.user where User='';

mysql> flush privileges;

 

要想为匿名账户指定密码,可以使用SET PASSWORDUPDATE。在两种情况中,一定要使用PASSWORD()函数为密码加密。

如果你不知道是哪个主机名,在SET PASSWORD之前执行下面的语句:

mysql> SELECT Host, User FROM mysql.user;

查找在User列有root和在Host列没有localhost的记录。然后在第二个SET PASSWORD语句中使用该Host值。

如果你宁愿删除匿名账户,操作方法是:

shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE User = '';
mysql> FLUSH PRIVILEGES;

可以在WindowsUnix中使用DELETE语句。在Windows中,如果你只想删掉具有与root相同权限的匿名账户,方法为:

shell> mysql -u root
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='';
mysql> FLUSH PRIVILEGES;

该账户允许匿名访问,但是拥有全部的权限,因此删掉它可以提高安全。

你可以用几种方法为root账户指定密码。以下介绍了三种方法:

·        使用SET PASSWORD语句

·        使用mysqladmin命令行客户端程序

·        使用UPDATE语句

要想使用SET PASSWORD指定密码,用root连接服务器并执行两个SET PASSWORD语句。一定要使用PASSWORD()函数来加密密码。

Windows中的语句:

shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');

Unix中的语句:

shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');

用服务器主机名替换第二个SET PASSWORD语句中的host_name。这是你指定匿名账户密码的主机名。

要想使用mysqladminroot账户指定密码,执行下面的命令:

  shell> mysqladmin -u root password "newpwd"
  shell> mysqladmin -u root -h host_name password "newpwd"

上述命令适用于WindowsUnix。用服务器主机名替换第二个命令中的host_name。不一定需要将密码用双引号引起来,但是你如果密码中包含空格或专用于命令解释的其它字符,则需要用双引号引起来。

你还可以使用UPDATE直接修改user表。下面的UPDATE语句可以同时为两个root账户指定密码:

shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
    ->     WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

UPDATE语句适用于WindowsUnix

设置完密码后,当你连接服务器时你必须提供相应密码。例如,如果你想要用mysqladmin关闭服务器,可以使用下面的命令:

shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)

 

原创粉丝点击