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 PASSWORD或UPDATE。在两种情况中,一定要使用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;
可以在Windows和Unix中使用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。这是你指定匿名账户密码的主机名。
要想使用mysqladmin为root账户指定密码,执行下面的命令:
shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"
上述命令适用于Windows和Unix。用服务器主机名替换第二个命令中的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语句适用于Windows和Unix。
设置完密码后,当你连接服务器时你必须提供相应密码。例如,如果你想要用mysqladmin关闭服务器,可以使用下面的命令:
shell> mysqladmin -u root -p shutdown
Enter password: (enter root password here)