3.2.1设置mysql 的配置文件(/etc/mysql/my.cnf)
vi /etc/mysql/my.cnf
找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;
重启mysql:/etc/init.d/mysql restart; 或sudo service mysql restart
3.2.2:进入mysql 数据库
mysql -u root -p
mysql>grant all privileges on *.* to root@'%' identified by 'xxxx';
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%’:表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
后面到‘xxxx’为root 用户的password;
这样外部IP就可以访问Linux下的MYSQL数据库了。
3.3 数据库乱码问题
由于是要把从windows的MYSQL导出的数据再导入Linux下的MYSQL所以,免不了要出现乱码问题。解决方案如下:(我们统一采用UTF-8)
3.3.1 从windows的MYSQL导出的数据
mysqldump -u root -p --default-character-set=utf8 数据库名>d:/mydb.sql
3.3.2 设置Linux下mysql下数据编码
在/etc/mysql/my.cnf文件中
在[client]下添加default-character-set=utf8
在[mysqld]下添加
character-set-server=utf8
collation-server=utf8_general_ci
lower_case_table_names=1 //这里1是表示不区分大小写,0表示区分大小写
//这个相当重要啊!!!因为用的Hibernate表结构自动生成的,windows下mysql数据库默认表名不区分大小写,无论你在*.hbm.xml配置的表名是啥,一律变小写;而在Linux下mysql数据库默认表名是区分大小写的,一定得统一起来,不然数据库虽然连上了但是数据获取不到。
PS:MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
在[mysql]下添加
default-character-set=gbk //使得你在Linux下mysql客户端查看数据时屏幕显示不乱码
更改完上述步骤后,重启mysql:sudo service mysql restart
如果修改错误,怎么也启动不了可以还原回去,或是直接卸载重装:
防止原有数据影响后续的安装和调试
1 sudo apt-get autoremove --purge mysql-server-5.0
2 sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)
3.3.3 导入数据到Linux下的mysql
首先的先创建mydb数据库:
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8 ;
导入:mysql -u root -p --default-character-set=utf8 mydb
或是在mysql命令行模式下:source /home/user1/mydb.sql;
这样就可以了,开始运行Tomcat使用吧!