堕落美剧好看吗:在Fedora 11上安装mysql并实现远程访问

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 15:46:18

1. 安装:

       $ yum install mysql-server

2. 修改root密码:

       $ mysqladmin -u root password your_new_passwd

3. 启动mysql服务

       $ /etc/init.d/mysqld start

4. 添加为系统服务并随之自动启动:

       $ chkconfig --level 2345 mysqld on

5. 修改防火墙,开启3306端口,使得可以进行远程访问:

       System->Administration->Firewall->Other ports,添加3306端口,一定要把tcp和udp都加上!

    其本质是修改了/etc/sysconfig/iptables文件,也可直接进行修改,按照如下格式:

       -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

       -A INPUT -m state --state NEW -m tcp -p udp --dport 3306 -j ACCEPT

6. mysql默认的root用户是不能远程访问的,需要为mysql中添加一个可以远程访问的用户,首先以root用户登录mysql,然后增加一个用户:

       GRANT ALL ON *.* TO your_username@'your_host_name_or_ip_address' IDENTIFIED BY 'your_password'

     这里的ALL表示,所有任何权限(包括增删改等),*.*表示任何数据库中的任何表,也可指定成mysql中的某个数据库甚至某个表,该用户登录后只能对该数据库进行刚刚赋予的操作。your_host_name_or_ip_address是指规定你只能在通过该ip地址远程访问,如果指定任意地址均可访问,则可用通配符%代替。

     比如:GRANT insert ON test.* test@'%' IDENTIFIED BY 'test'

     它的含义是,用户可在任意IP地址通过用户名test,密码test登录,登录后,只能对test数据库进行insert操作。

     其本质是在mysql中默认包含了一个mysql的数据库,其中有一个user表,上述GRANT命令其实就是往这个表中添加了一行记录。也可以直接修改这个表达到同样的效果,不过较为麻烦。注意添加密码,可以使用PASSWORD()函数。

7. 远程登录,以在linux下为例(window下可用Mysql GUI Tools):

     $ mysql -u test -h 192.168.1.111 -p                     #然后输入密码即可

8. 解决数据库表插入中文显示乱码问题:
    1)修改/etc/my.cnf文件,找到[mysqld],在后面加入以下行:
        default-character-set = utf8
       同时新建一项,名为[client],在之后插入同上的语句。重启mysql服务。
    2) 对于创建数据库的sql脚本,需要加入以下语句:
        drop database if exists TEST;
        create database TEST default character set utf8;
    这样,mysql默认的字符集被设为UTF-8,所创建表的字符集也变为UTF-8,并且客户端也将以UTF-8显示。