在向大家详细介绍Linux mysql之前,首先让大家了解下Linux mysql,然后全面介绍Linux mysql,希望对大家有用。
1. Linux mysql安装:
$ yum install mysql-server
2. Linux mysql修改root密码:
$ mysqladmin -u root password your_new_passwd
3. 启动Linux 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用户是不能远程访问的,需要为Linux mysql中添加一个可以远程访问的用户,首先以root用户登录Linux mysql,然后增加一个用户:
GRANT ALL ON *.* TO your_username@'your_host_name_or_ip_address' IDENTIFIED BY 'your_password'
这里的ALL表示,所有任何权限(包括增删改等),*.*表示任何数据库中的任何表,也可指定成Linux mysql中的某个数据库甚至某个表,该用户登录后只能对该数据库进行刚刚赋予的操作。your_host_name_or_ip_address是指规定你只能在通过该ip地址远程访问,如果指定任意地址均可访问,则可用通配符%代替。
比如:GRANT insert ON test.* IDENTIFIED BY 'test'它的含义是,用户可在任意IP地址通过用户名test,密码test登录,登录后,只能对test数据库进行insert操作。
其本质是在Linux mysql中默认包含了一个Linux 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],在之后插入同上的语句。重启Linux mysql服务。
2) 对于创建数据库的sql脚本,需要加入以下语句:
drop database if exists TEST;
create database TEST default character set utf8;
这样,Linux mysql默认的字符集被设为UTF-8,所创建表的字符集也变为UTF-8,并且客户端也将以UTF-8显示。