我们安装的MysqL-server并不是最新版本,如果你想尝试最新版本,那就去MysqL官网下载rpm包安装就行了,至此我们的MysqL数据库已经安装完成了。
四、MysqL数据库的初始化及相关配置
我们在安装完MysqL数据库以后,会发现会多出一个MysqLd的服务,这个就是咱们的数据库服务,我们通过输入service MysqLd start命令就可以启动我们的MysqL服务。
注意:如果我们是第一次启动MysqL服务,MysqL服务器首先会进行初始化的配置,如:
[root@xiaoluo ~]# service MysqLd start
初始化 MysqL 数据库: WARNING: The host 'xiaoluo' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MysqL version. The MysqL daemon,MysqLd,should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MysqL privileges !
Installing MysqL system tables...
OK
Filling help tables...
OK
To start MysqLd at boot time you have to copy
support-files/MysqL.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MysqL root USER !
To do so,start the server,then issue the following commands:
/usr/bin/MysqLadmin -u root password new-password'
/usr/bin/MysqLadmin -u root -h xiaoluo password '
Alternatively you can run:
/usr/bin/MysqL_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MysqL daemon with:
cd /usr ; /usr/bin/MysqLd_safe &
You can test the MysqL daemon with MysqL-test-run.pl
cd /usr/MysqL-test ; perl MysqL-test-run.pl
Please report any problems with the /usr/bin/MysqLbug script!
[确定]
正在启动 MysqLd: [确定]
这时我们会看到第一次启动MysqL服务器以后会提示非常多的信息,目的就是对MysqL数据库进行初始化操作,当我们再次重新启动MysqL服务时,就不会提示这么多信息了,如:
[root@xiaoluo ~]# service MysqLd restart
停止 MysqLd: [确定]
正在启动 MysqLd: [确定]
我们在使用MysqL数据库时,都得首先启动MysqLd服务,我们可以 通过chkconfig --list | grep MysqLd命令来查看MysqL服务是不是开机自动启动,如:
[root@xiaoluo ~]# chkconfig --list | grep MysqLd
MysqLd 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
我们发现MysqLd服务并没有开机自动启动,我们当然可以通过chkconfig MysqLd on命令来将其设置成开机启动,这样就不用每次都去手动启动了
[root@xiaoluo ~]# chkconfig MysqLd on
[root@xiaoluo ~]# chkconfig --list | grep MysqL
MysqLd 2:启用 3:启用 4:启用 5:启用 MysqL数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动MysqL服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :
/usr/bin/MysqLadmin -u root password 'new-password' // 为root账号设置密码
所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是MysqL的root账号,非Linux的root账号)
MysqLadmin -u root password root' // 通过该命令给root账号设置密码为 root
此时我们就可以通过MysqL -u root -p命令来登录我们的MysqL数据库了
五、MysqL数据库的主要配置文件
1./etc/my.cnf这是MysqL的主配置文件
我们可以查看一下这个文件的一些信息
[root@xiaoluo etc]# ls my.cnf
my.cnf
[root@xiaoluo etc]# cat my.cnf
[MysqLd]
datadir=/var/lib/MysqL
socket=/var/lib/MysqL/MysqL.sock
user=MysqL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[MysqLd_safe]
log-error=/var/log/MysqLd.log
pid-file=/var/run/MysqLd/MysqLd.pid
2./var/lib/MysqL MysqL数据库的数据库文件存放位置
我们的MysqL数据库的数据库文件通常是存放在了/ver/lib/MysqL这个目录下
[root@xiaoluo ~]# cd /var/lib/MysqL/
[root@xiaoluo MysqL]# ls -l
总用量 20488
-rw-rw----. 1 MysqL MysqL 10485760 4月 6 22:01 ibdata1
-rw-rw----. 1 MysqL MysqL 5242880 4月 01 ib_logfile0
-rw-rw----. 21:59 ib_logfile1
drwx------. 2 MysqL MysqL 4096 4月 59 MysqL // 这两个是MysqL数据库安装时默认的两个数据库文件
srwxrwxrwx. 1 MysqL MysqL 0 4月 01 MysqL.sock
drwx------. 59 test // 这两个是MysqL数据库安装时默认的两个数据库文件
我们可以自己创建一个数据库,来验证一下该数据库文件的存放位置
创建一个我们自己的数据库:
MysqL> create database xiaoluo;
Query OK,1 row affected (0.00 sec)
[root@xiaoluo MysqL]# 20492
-rw-rw----. 59 MysqL
srwxrwxrwx. 59 test
drwx------. 15 xiaoluo // 这个就是我们刚自己创建的xiaoluo数据库
[root@xiaoluo MysqL]# cd xiaoluo/
[root@xiaoluo xiaoluo]# ls
db.opt
3./var/logMysqL数据库的日志输出存放位置
我们的MysqL数据库的一些日志输出存放位置都是在/var/log这个目录下
[root@xiaoluo xiaoluo]# cd
[root@xiaoluo ~]# cd /var/log
[root@xiaoluo log]# ls
amanda cron maillog-20130331 spice-vdagent.log
anaconda.ifcfg.log cron-20130331 mcelog spooler
anaconda.log cups messages spooler-20130331
anaconda.program.log dirsrv messages-20130331 sssd
anaconda.storage.log dmesg MysqLd.log tallylog
anaconda.syslog dmesg.old ntpstats tomcat6
anaconda.xlog dracut.log piranha wpa_supplicant.log
anaconda.yum.log gdm pm-powersave.log wtmp
audit httpd ppp Xorg.0.log
boot.log ibacm.log prelink Xorg.0.log.old
btmp lastlog sa Xorg.1.log
btmp-20130401 libvirt samba Xorg.2.log
cluster luci secure Xorg.9.log
ConsoleKit maillog secure-20130331 yum.log
其中MysqLd.log 这个文件就是我们存放我们跟MysqL数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息
因为我们的MysqL数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道MysqL数据库绑定的端口号是 3306 ,所以我们可以通过netstat -anp命令来查看一下,Linux系统是否在监听 3306 这个端口号:
结果如上所示,Linux系统监听的3306端口号就是我们的MysqL数据库!!!!
本篇随笔详细记录了在CentOS6.4下通过yum安装MysqL数据库以及对数据库进行基本配置,在后续的Linux学习中将会坚持记录自己的心得以及体会!!!!
MysqL 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。
网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。
我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来
我们可以通过命令查看数据库当前编码:
MysqL> SHOW VARIABLES LIKE 'character%';
发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。
第一阶段:
MysqL设置编码命令
SET character_set_client = utf8; SET character_set_connection = utf8; SET character_set_database = utf8; SET character_set_results = utf8; SET character_set_server = utf8; |
然后 MysqL> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。
但是,这只是一种假象
此种方式只在当前状态下有效,当重启数据库服务后失效。
所以如果想要不出现乱码只有修改my.ini文件,
从my.ini下手(标签下没有的添加,有的修改)
[client]
default-character-set=utf8
[MysqL]
default-character-set=utf8
[MysqLd]
default-character-set=utf8
以上3个section都要加default-character-set=utf8,平时我们可能只加了MysqLd一项。
然后重启MysqL,执行
确保所有的Value项都是utf8即可。
但是可恶的事情又来了,
|character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8
注意 该配置| character_set_server | latin1 无法设置成UTF8 交互时候仍然会出现乱码。
第二阶段:找到下面这东东
X:\%path%\MysqL\MysqL Server 5.0\bin\MysqLInstanceConfig.exe
重新启动设置,将默认编码设置为utf8.这样就能达到我们所要的效果了。
MysqL> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MysqL\MysqL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set
另外注意事项:
1、建表时加utf8,表字段的Collation可加可不加,不加时默认是utf8_general_ci了。
CREATE TABLE `tablename4` ( `id` int(11) NOT NULL AUTO_INCREMENT, `varchar1` varchar(255) DEFAULT NULL, `varbinary1` varbinary(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
2、网页xxx.PHP/jsp保存时选择utf8编码,页头最好加上
header('conten-type:text/html;charset=utf-8');
在执行CRUD操作前先执行一下
MysqL_query("set names utf8");
-------------------------
连接数据库设置编码
jdbc:MysqL://地址:3306/数据库名?characterEncoding=utf8
java中的常用编码UTF-8;GBK;GB2312;ISO-8859-1;
对应MysqL数据库中的编码utf8;gbk;gb2312;latin1