天天看点

【整理】源码安装 mysql-5.6.10

       参考别人的经验,加上自己的理解,完成下面的动作。

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

【源码安装 mysql-5.6.10】

(1)解压 mysql 源码 

<a href="http://my.oschina.net/moooofly/blog/128203#">?</a>

1

2

<code>[root@betty me_wget]</code><code># tar zxvf mysql-5.6.10.tar.gz</code>

<code>[root@betty me_wget]</code><code># cd mysql-5.6.10</code>

(2)创建 mysql 的安装目录及数据库存放目录 

<code>[root@betty mysql-5.6.10]</code><code># mkdir -p /usr/local/mysql</code>

<code>[root@betty mysql-5.6.10]</code><code># mkdir -p /usr/local/mysql/data</code>

(3)创建 mysql 用户及用户组 

3

4

5

<code>[root@betty mysql-5.6.10]</code><code># groupadd mysql</code>

<code>groupadd: group mysql exists</code>

<code>[root@betty mysql-5.6.10]</code><code># useradd -r -g mysql mysql</code>

<code>useradd</code><code>: user mysql exists</code>

<code>[root@betty mysql-5.6.10]</code><code>#</code>

因为我之前已经安装过一次,所以上面说用户组和用户已存在。 

(4)安装 mysql 

参数说明: 

-dcmake_install_prefix=/usr/local/mysql    //安装目录 

-dinstall_datadir=/usr/local/mysql/data     //数据库存放目录 

-ddefault_charset=utf8                            //使用utf8字符 

-ddefault_collation=utf8_general_ci          //校验字符 

-dextra_charsets=all                                  //安装所有扩展字符集 

-denabled_local_infile=1                          //允许从本地导入数据 

执行 cmake 命令。 

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

<code>[root@betty mysql-5.6.10]</code><code># cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/usr/local/mysql/data -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci -dextra_charsets=all -denabled_local_infile=1</code>

<code>-- running cmake version 2.8.10.2</code>

<code>-- the c compiler identification is gnu 4.1.2</code>

<code>-- the cxx compiler identification is gnu 4.1.2</code>

<code>-- check</code><code>for</code> <code>working c compiler:</code><code>/usr/bin/cc</code>

<code>-- check</code><code>for</code> <code>working c compiler:</code><code>/usr/bin/cc</code> <code>-- works</code>

<code>-- detecting c compiler abi info</code>

<code>-- detecting c compiler abi info -</code><code>done</code>

<code>-- check</code><code>for</code> <code>working cxx compiler:</code><code>/usr/bin/c</code><code>++</code>

<code>-- check</code><code>for</code> <code>working cxx compiler:</code><code>/usr/bin/c</code><code>++ -- works</code>

<code>-- detecting cxx compiler abi info</code>

<code>-- detecting cxx compiler abi info -</code><code>done</code>

<code>......</code>

<code>-- check size of pthread_t</code>

<code>-- check size of pthread_t -</code><code>done</code>

<code>-- performing test have_peercred</code>

<code>-- performing test have_peercred - success</code>

<code>-- googlemock was not found. gtest-based unit tests will be disabled. you can run cmake . -denable_downloads=1 to automatically download and build required components from</code><code>source</code><code>.</code>

<code>-- if you are inside a firewall, you may need to use an http proxy:</code><code>export</code> <code>http_proxy=http:</code><code>//foo</code><code>.bar.com:80</code>

<code>warning: bison executable not found</code><code>in</code> <code>path</code>

<code>-- configuring</code><code>done</code>

<code>-- generating</code><code>done</code>

<code>-- build files have been written to:</code><code>/root/me_wget/mysql-5</code><code>.6.10</code>

执行 make 命令。 

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

<code>[root@betty mysql-5.6.10]</code><code># make</code>

<code>scanning dependencies of target info_bin</code>

<code>[  0%] built target info_bin</code>

<code>scanning dependencies of target info_src</code>

<code>[  0%] built target info_src</code>

<code>scanning dependencies of target abi_check</code>

<code>[  0%] built target abi_check</code>

<code>scanning dependencies of target zlib</code>

<code>[  0%] building c object zlib</code><code>/cmakefiles/zlib</code><code>.</code><code>dir</code><code>/adler32</code><code>.c.o</code>

<code>[  0%] building c object zlib</code><code>/cmakefiles/zlib</code><code>.</code><code>dir</code><code>/compress</code><code>.c.o</code>

<code>[  0%] building c object zlib</code><code>/cmakefiles/zlib</code><code>.</code><code>dir</code><code>/crc32</code><code>.c.o</code>

<code>[  0%] building c object zlib</code><code>/cmakefiles/zlib</code><code>.</code><code>dir</code><code>/deflate</code><code>.c.o</code>

<code>[  0%] building c object zlib</code><code>/cmakefiles/zlib</code><code>.</code><code>dir</code><code>/gzio</code><code>.c.o</code>

<code>....</code>

<code>linking cxx static library libsql_embedded.a</code>

<code>[ 99%] built target sql_embedded</code>

<code>[ 99%] generating mysqlserver_depends.c</code>

<code>scanning dependencies of target mysqlserver</code>

<code>[ 99%] building c object libmysqld</code><code>/cmakefiles/mysqlserver</code><code>.</code><code>dir</code><code>/mysqlserver_depends</code><code>.c.o</code>

<code>linking c static library libmysqld.a</code>

<code>/usr/bin/ar</code><code>: creating</code><code>/root/me_wget/mysql-5</code><code>.6.10</code><code>/libmysqld/libmysqld</code><code>.a</code>

<code>[ 99%] built target mysqlserver</code>

<code>scanning dependencies of target mysql_client_test_embedded</code>

<code>[ 99%] building c object libmysqld</code><code>/examples/cmakefiles/mysql_client_test_embedded</code><code>.</code><code>dir</code><code>/__/__/tests/mysql_client_test</code><code>.c.o</code>

<code>linking cxx executable mysql_client_test_embedded</code>

<code>[ 99%] built target mysql_client_test_embedded</code>

<code>scanning dependencies of target mysql_embedded</code>

<code>[ 99%] building cxx object libmysqld</code><code>/examples/cmakefiles/mysql_embedded</code><code>.</code><code>dir</code><code>/__/__/client/completion_hash</code><code>.cc.o</code>

<code>[ 99%] building cxx object libmysqld</code><code>/examples/cmakefiles/mysql_embedded</code><code>.</code><code>dir</code><code>/__/__/client/mysql</code><code>.cc.o</code>

<code>[100%] building cxx object libmysqld</code><code>/examples/cmakefiles/mysql_embedded</code><code>.</code><code>dir</code><code>/__/__/client/readline</code><code>.cc.o</code>

<code>linking cxx executable mysql_embedded</code>

<code>[100%] built target mysql_embedded</code>

<code>scanning dependencies of target mysqltest_embedded</code>

<code>[100%] building cxx object libmysqld</code><code>/examples/cmakefiles/mysqltest_embedded</code><code>.</code><code>dir</code><code>/__/__/client/mysqltest</code><code>.cc.o</code>

<code>linking cxx executable mysqltest_embedded</code>

<code>[100%] built target mysqltest_embedded</code>

<code>scanning dependencies of target my_safe_process</code>

<code>[100%] building cxx object mysql-</code><code>test</code><code>/lib/my/safeprocess/cmakefiles/my_safe_process</code><code>.</code><code>dir</code><code>/safe_process</code><code>.cc.o</code>

<code>linking cxx executable my_safe_process</code>

<code>[100%] built target my_safe_process</code>

执行 make install 命令。 

<code>[root@betty mysql-5.6.10]</code><code># make install</code>

<code>[  1%] built target zlib</code>

<code>[  2%] built target yassl</code>

<code>[  4%] built target taocrypt</code>

<code>[  6%] built target edit</code>

<code>[ 10%] built target</code><code>strings</code>

<code>[ 18%] built target mysys</code>

(5)设置目录权限 

41

42

43

44

45

46

47

48

49

50

51

52

<code>[root@betty mysql-5.6.10]# cd /usr/local/mysql</code>

<code>[root@betty mysql]# ll</code>

<code>total 76</code>

<code>-rw-r--r--  1 root root 17987 jan 23 00:54 copying</code>

<code>-rw-r--r--  1 root root  7468 jan 23 00:55 install-binary</code>

<code>-rw-r--r--  1 root root  2552 jan 23 00:54 readme</code>

<code>drwxr-xr-x  2 root root  4096 may  6 13:57 bin</code>

<code>drwxr-xr-x  4 root root  4096 may  6 13:57 data</code>

<code>drwxr-xr-x  2 root root  4096 may  6 13:58 docs</code>

<code>drwxr-xr-x  3 root root  4096 may  6 13:57 include</code>

<code>drwxr-xr-x  3 root root  4096 may  6 13:57 lib</code>

<code>drwxr-xr-x  4 root root  4096 may  6 13:57 man</code>

<code>drwxr-xr-x 10 root root  4096 may  6 13:57 mysql-test</code>

<code>drwxr-xr-x  2 root root  4096 may  6 13:57 scripts</code>

<code>drwxr-xr-x 28 root root  4096 may  6 13:57 share</code>

<code>drwxr-xr-x  4 root root  4096 may  6 13:57 sql-bench</code>

<code>drwxr-xr-x  3 root root  4096 may  6 13:57 support-files</code>

<code>[root@betty mysql]# chown -r root:mysql .</code>

<code>-rw-r--r--  1 root mysql 17987 jan 23 00:54 copying</code>

<code>-rw-r--r--  1 root mysql  7468 jan 23 00:55 install-binary</code>

<code>-rw-r--r--  1 root mysql  2552 jan 23 00:54 readme</code>

<code>drwxr-xr-x  2 root mysql  4096 may  6 13:57 bin</code>

<code>drwxr-xr-x  4 root mysql  4096 may  6 13:57 data</code>

<code>drwxr-xr-x  2 root mysql  4096 may  6 13:58 docs</code>

<code>drwxr-xr-x  3 root mysql  4096 may  6 13:57 include</code>

<code>drwxr-xr-x  3 root mysql  4096 may  6 13:57 lib</code>

<code>drwxr-xr-x  4 root mysql  4096 may  6 13:57 man</code>

<code>drwxr-xr-x 10 root mysql  4096 may  6 13:57 mysql-test</code>

<code>drwxr-xr-x  2 root mysql  4096 may  6 13:57 scripts</code>

<code>drwxr-xr-x 28 root mysql  4096 may  6 13:57 share</code>

<code>drwxr-xr-x  4 root mysql  4096 may  6 13:57 sql-bench</code>

<code>drwxr-xr-x  3 root mysql  4096 may  6 13:57 support-files</code>

<code>[root@betty mysql]# chown -r mysql:mysql data</code>

<code>-rw-r--r--  1 root  mysql 17987 jan 23 00:54 copying</code>

<code>-rw-r--r--  1 root  mysql  7468 jan 23 00:55 install-binary</code>

<code>-rw-r--r--  1 root  mysql  2552 jan 23 00:54 readme</code>

<code>drwxr-xr-x  2 root  mysql  4096 may  6 13:57 bin</code>

<code>drwxr-xr-x  4 mysql mysql  4096 may  6 13:57 data</code>

<code>drwxr-xr-x  2 root  mysql  4096 may  6 13:58 docs</code>

<code>drwxr-xr-x  3 root  mysql  4096 may  6 13:57 include</code>

<code>drwxr-xr-x  3 root  mysql  4096 may  6 13:57 lib</code>

<code>drwxr-xr-x  4 root  mysql  4096 may  6 13:57 man</code>

<code>drwxr-xr-x 10 root  mysql  4096 may  6 13:57 mysql-test</code>

<code>drwxr-xr-x  2 root  mysql  4096 may  6 13:57 scripts</code>

<code>drwxr-xr-x 28 root  mysql  4096 may  6 13:57 share</code>

<code>drwxr-xr-x  4 root  mysql  4096 may  6 13:57 sql-bench</code>

<code>drwxr-xr-x  3 root  mysql  4096 may  6 13:57 support-files</code>

<code>[root@betty mysql]#</code>

       上述命令将数据目录 data 的所属用户和所属用户组均设置为 mysql ,而将 mysql 目录下的其他文件的所属用户设置为 root ,所属组设置为 mysql 。 

(6)设置 mysql 配置文件 

<code>[root@betty mysql]</code><code># cp support-files/my-default.cnf /etc/my.cnf</code>

(7)创建系统数据库的表 

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

<code>[root@betty mysql]</code><code># scripts/mysql_install_db --user=mysql</code>

<code>installing mysql system tables...2013-05-06 15:22:18 0 [warning] timestamp with implicit default value is deprecated. please use --explicit_defaults_for_timestamp server option (see documentation</code><code>for</code> <code>more</code> <code>details).</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: the innodb memory heap is disabled</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: mutexes and rw_locks use gcc atomic builtins</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: compressed tables use zlib 1.2.3</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: cpu does not support crc32 instructions</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: initializing buffer pool, size = 128.0m</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: completed initialization of buffer pool</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: the first specified data</code><code>file</code> <code>.</code><code>/ibdata1</code> <code>did not exist: a new database to be created!</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: setting</code><code>file</code> <code>.</code><code>/ibdata1</code> <code>size to 12 mb</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: database physically writes the</code><code>file</code> <code>full: wait...</code>

<code>2013-05-06 15:22:18 19328 [note] innodb: setting log</code><code>file</code> <code>.</code><code>/ib_logfile101</code> <code>size to 48 mb</code>

<code>2013-05-06 15:22:20 19328 [note] innodb: setting log</code><code>file</code> <code>.</code><code>/ib_logfile1</code> <code>size to 48 mb</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: renaming log</code><code>file</code> <code>.</code><code>/ib_logfile101</code> <code>to .</code><code>/ib_logfile0</code>

<code>2013-05-06 15:22:21 19328 [warning] innodb: new log files created, lsn=45781</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: doublewrite buffer not found: creating new</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: doublewrite buffer created</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: 128 rollback segment(s) are active.</code>

<code>2013-05-06 15:22:21 19328 [warning] innodb: creating foreign key constraint system tables.</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: foreign key constraint system tables created</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: creating tablespace and datafile system tables.</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: tablespace and datafile system tables created.</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: waiting</code><code>for</code> <code>purge to start</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: 1.2.10 started; log sequence number 0</code>

<code>2013-05-06 15:22:21 19328 [note] binlog end</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: fts optimize thread exiting.</code>

<code>2013-05-06 15:22:21 19328 [note] innodb: starting</code><code>shutdown</code><code>...</code>

<code>2013-05-06 15:22:22 19328 [note] innodb: shutdown completed; log sequence number 1625977</code>

<code>ok</code>

<code>filling help tables...2013-05-06 15:22:22 0 [warning] timestamp with implicit default value is deprecated. please use --explicit_defaults_for_timestamp server option (see documentation</code><code>for</code> <code>more</code> <code>details).</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: the innodb memory heap is disabled</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: mutexes and rw_locks use gcc atomic builtins</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: compressed tables use zlib 1.2.3</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: cpu does not support crc32 instructions</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: initializing buffer pool, size = 128.0m</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: completed initialization of buffer pool</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: highest supported</code><code>file</code> <code>format</code> <code>is barracuda.</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: 128 rollback segment(s) are active.</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: waiting</code><code>for</code> <code>purge to start</code>

<code>2013-05-06 15:22:22 19351 [note] innodb: 1.2.10 started; log sequence number 1625977</code>

<code>2013-05-06 15:22:23 19351 [note] binlog end</code>

<code>2013-05-06 15:22:23 19351 [note] innodb: fts optimize thread exiting.</code>

<code>2013-05-06 15:22:23 19351 [note] innodb: starting</code><code>shutdown</code><code>...</code>

<code>2013-05-06 15:22:24 19351 [note] innodb: shutdown completed; log sequence number 1625987</code>

<code>to start mysqld at boot</code><code>time</code> <code>you have to copy</code>

<code>support-files</code><code>/mysql</code><code>.server to the right place</code><code>for</code> <code>your system</code>

<code>please remember to set a password for the mysql root user !</code>

<code>to</code><code>do</code> <code>so, start the server,</code><code>then</code> <code>issue the following commands:</code>

<code>  </code><code>.</code><code>/bin/mysqladmin</code> <code>-u root password</code><code>'new-password'</code>

<code>  </code><code>.</code><code>/bin/mysqladmin</code> <code>-u root -h betty password</code><code>'new-password'</code>

<code>alternatively you can run:</code>

<code>  </code><code>.</code><code>/bin/mysql_secure_installation</code>

<code>which</code> <code>will also give you the option of removing the</code><code>test</code>

<code>databases and anonymous user created by default.  this is</code>

<code>strongly recommended</code><code>for</code> <code>production servers.</code>

<code>see the manual</code><code>for</code> <code>more</code> <code>instructions.</code>

<code>you can start the mysql daemon with:</code>

<code>  </code><code>cd</code> <code>. ; .</code><code>/bin/mysqld_safe</code> <code>&amp;</code>

<code>you can</code><code>test</code> <code>the mysql daemon with mysql-</code><code>test</code><code>-run.pl</code>

<code>  </code><code>cd</code> <code>mysql-</code><code>test</code> <code>; perl mysql-</code><code>test</code><code>-run.pl</code>

<code>please report any problems with the .</code><code>/bin/mysqlbug</code> <code>script!</code>

<code>the latest information about mysql is available on the web at</code>

<code>  </code><code>http:</code><code>//www</code><code>.mysql.com</code>

<code>support mysql by buying support</code><code>/licenses</code> <code>at http:</code><code>//shop</code><code>.mysql.com</code>

<code>new default config</code><code>file</code> <code>was created as .</code><code>/my</code><code>.cnf and</code>

<code>will be used by default by the server when you start it.</code>

<code>you may edit this</code><code>file</code> <code>to change server settings</code>

<code>warning: default config</code><code>file</code> <code>/etc/my</code><code>.cnf exists on the system</code>

<code>this</code><code>file</code> <code>will be</code><code>read</code> <code>by default by the mysql server</code>

<code>if you</code><code>do</code> <code>not want to use this, either remove it, or use the</code>

<code>--defaults-</code><code>file</code> <code>argument to mysqld_safe when starting the server</code>

<code>[root@betty mysql]</code><code>#</code>

(8)设置环境变量 

<code>[root@betty mysql]</code><code># vi /root/.bash_profile </code>

<code># .bash_profile</code>

<code># get the aliases and functions</code>

<code>if</code> <code>[ -f ~/.bashrc ];</code><code>then</code>

<code>        </code><code>. ~/.bashrc</code>

<code>fi</code>

<code># user specific environment and startup programs</code>

<code>#path=$path:$home/bin</code>

<code>path=$path:$home</code><code>/bin</code><code>:</code><code>/usr/local/mysql/bin</code>

<code>export</code> <code>path</code>

<code>unset</code> <code>username </code>

<code>[root@betty mysql]</code><code># source /root/.bash_profile</code>

(9)启动 mysql 服务器 

       若想使用 service 命令启动 mysql 需要将 mysql 启动脚本 support-files/mysql.server 添加到 /etc/init.d 目录下,如下设置:  

<code>[root@betty mysql]</code><code># cp support-files/mysql.server  /etc/init.d/mysql</code>

<code>[root@betty mysql]</code><code># ll /etc/init.d/mysql </code>

<code>-rwxr-xr-x 1 root root 10650 may  6 14:11</code><code>/etc/init</code><code>.d</code><code>/mysql</code>

<code>[root@betty mysql]</code><code># /etc/init.d/mysql start</code>

<code>starting mysql.                                            [  ok  ] </code>

<code>[root@betty mysql]</code><code># ps aux|grep mysql</code>

<code>root      4070  0.0  0.0   8732  1168 pts</code><code>/1</code>    <code>s    14:51   0:00</code><code>/bin/sh</code> <code>/usr/local/mysql/bin/mysqld_safe</code> <code>--datadir=</code><code>/usr/local/mysql/data</code> <code>--pid-</code><code>file</code><code>=</code><code>/usr/local/mysql/data/betty</code><code>.pid</code>

<code>mysql     4185  0.0  2.2 447880 86952 pts</code><code>/1</code>    <code>sl   14:51   0:00</code><code>/usr/local/mysql/bin/mysqld</code> <code>--basedir=</code><code>/usr/local/mysql</code> <code>--datadir=</code><code>/usr/local/mysql/data</code> <code>--plugin-</code><code>dir</code><code>=</code><code>/usr/local/mysql/lib/plugin</code> <code>--user=mysql --log-error=</code><code>/usr/local/mysql/data/betty</code><code>.err --pid-</code><code>file</code><code>=</code><code>/usr/local/mysql/data/betty</code><code>.pid</code>

<code>root      4221  0.0  0.0   6064   572 pts</code><code>/1</code>    <code>s+   14:54   0:00</code><code>grep</code> <code>mysql</code>

(10)为 root 账号添加远程连接的能力 

112

113

114

115

116

117

118

119

120

121

122

123

124

<code>[root@betty ~]</code><code># mysql -u root -p</code>

<code>enter password: </code>

<code>welcome to the mysql monitor.  commands end with ; or \g.</code>

<code>your mysql connection</code><code>id</code> <code>is 7</code>

<code>server version: 5.6.10-log source distribution</code>

<code>copyright (c) 2000, 2013, oracle and</code><code>/or</code> <code>its affiliates. all rights reserved.</code>

<code>oracle is a registered trademark of oracle corporation and</code><code>/or</code> <code>its</code>

<code>affiliates. other names may be trademarks of their respective</code>

<code>owners.</code>

<code>type</code><code>'help;'</code> <code>or</code><code>'\h'</code> <code>for</code> <code>help. type</code><code>'\c'</code> <code>to</code><code>clear</code> <code>the current input statement.</code>

<code>mysql&gt; </code>

<code>mysql&gt; use mysql;</code>

<code>reading table information</code><code>for</code> <code>completion of table and column names</code>

<code>you can turn off this feature to get a quicker startup with -a</code>

<code>database changed</code>

<code>mysql&gt; desc user;</code>

<code>+------------------------+-----------------------------------+------+-----+---------+-------+</code>

<code>| field                  | type                              | null | key | default | extra |</code>

<code>| host                   | char(60)                          | no   | pri |         |       |</code>

<code>| user                   | char(16)                          | no   | pri |         |       |</code>

<code>| password               | char(41)                          | no   |     |         |       |</code>

<code>| select_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| insert_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| update_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| delete_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| drop_priv              | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| reload_priv            | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| shutdown_priv          | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| process_priv           | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| file_priv              | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| grant_priv             | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| references_priv        | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| index_priv             | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| alter_priv             | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| show_db_priv           | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| super_priv             | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_tmp_table_priv  | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| lock_tables_priv       | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| execute_priv           | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| repl_slave_priv        | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| repl_client_priv       | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_view_priv       | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| show_view_priv         | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_routine_priv    | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| alter_routine_priv     | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_user_priv       | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| event_priv             | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| trigger_priv           | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| create_tablespace_priv | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>| ssl_type               | enum(</code><code>''</code><code>,</code><code>'any'</code><code>,</code><code>'x509'</code><code>,</code><code>'specified'</code><code>) | no   |     |         |       |</code>

<code>| ssl_cipher             | blob                              | no   |     | null    |       |</code>

<code>| x509_issuer            | blob                              | no   |     | null    |       |</code>

<code>| x509_subject           | blob                              | no   |     | null    |       |</code>

<code>| max_questions          | int(11) unsigned                  | no   |     | 0       |       |</code>

<code>| max_updates            | int(11) unsigned                  | no   |     | 0       |       |</code>

<code>| max_connections        | int(11) unsigned                  | no   |     | 0       |       |</code>

<code>| max_user_connections   | int(11) unsigned                  | no   |     | 0       |       |</code>

<code>| plugin                 | char(64)                          | yes  |     |         |       |</code>

<code>| authentication_string  | text                              | yes  |     | null    |       |</code>

<code>| password_expired       | enum(</code><code>'n'</code><code>,</code><code>'y'</code><code>)                     | no   |     | n       |       |</code>

<code>43 rows</code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt;</code><code>select</code> <code>host,user,password from user;</code>

<code>+-----------+------+----------+</code>

<code>| host      | user | password |</code>

<code>| localhost | root |          |</code>

<code>| betty     | root |          |</code>

<code>| 127.0.0.1 | root |          |</code>

<code>| ::1       | root |          |</code>

<code>| localhost |      |          |</code>

<code>| betty     |      |          |</code>

<code>6 rows</code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt; grant all privileges on *.* to root@</code><code>"%"</code> <code>identified by</code><code>"root"</code><code>;</code>

<code>query ok, 0 rows affected (0.00 sec)</code>

<code>+-----------+------+-------------------------------------------+</code>

<code>| host      | user | password                                  |</code>

<code>| localhost | root |                                           |</code>

<code>| betty     | root |                                           |</code>

<code>| 127.0.0.1 | root |                                           |</code>

<code>| ::1       | root |                                           |</code>

<code>| localhost |      |                                           |</code>

<code>| betty     |      |                                           |</code>

<code>| %         | root | *81f5e21e35407d884a6cd4a731aebfb6af209e1b |</code>

<code>7 rows</code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt; flush privileges;</code>

<code>mysql&gt;</code><code>exit</code>

<code>bye</code>

<code>[root@betty ~]</code><code>#</code>

(11)删除本机匿名连接的空密码帐号 

<code>mysql&gt; delete from user where password=</code><code>""</code><code>;</code>

<code>query ok, 6 rows affected (0.00 sec)</code>

<code>+------+------+-------------------------------------------+</code>

<code>| host | user | password                                  |</code>

<code>| %    | root | *81f5e21e35407d884a6cd4a731aebfb6af209e1b |</code>

<code>1 row</code><code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt;</code>

<code></code>