Linux配置mysql (centos配置java环境 mysql配置篇 总结四)
♣安装的几种方法和比较
♣配置yum源
♣安装mysql
♣启动mysql
♣修改密码
♣导入.sql文件
♣缓存设置
♣允许远程登录(navicat)
♣配置编码为utf8
1.关于Linux系统的软件安装方法有很多种,目前常用是二进制安装,rpm安装,源代码安装,对这几种安装方法都有优点和缺点,现在将这些安装方法总结如下:
二进制包:安装简单,可以任意选择购软件版本,不需要编译,直接初始化就行了
rpm安装:此安装方法需要解决依赖包,可以安装指定软件版本
源代码:安装比较复杂,也需要解决依赖问题,不过可以指定需要的模块和启动某个功能
2.配置yum源
在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
2.1下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el5-8.noarch.rpm
输入命令后报错,解决方法如下:
因为域名供应商用了自己签的证书,lftp 不信任它,为了防止中间人攻击,拒绝继续操作。解决办法很简单。只要你能充分相信你的host,只需要在wget后面加上--no-check-certificate就可以,需要一个认证下载指令而已。所以指令改为:
wget --no-check-certificate http://dev.mysql.com/get/mysql57-community-release-el5-8.noarch.rpm
2.2安装mysql源
输入指令: yum localinstall mysql57-community-release-el5-8.noarch.rpm
后显示如下:
报错:Public key for mysql57-community-release-el5-8.noarch.rpm is not installed
解决方案:此时要导入rpm的签名信息即可(我的linux版本是centos 5.11)
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
再执行
sudo rpm -Uvh mysql57-community-release-el5-8.noarch.rpm
2.3检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
看到上图所示表示yum源配置成功
3.安装mysql
下载mysql,指令:yum install mysql-community-server
如下图,下载中
下载成功后自动安装,如下图:
4.启动mysql
--------------------mysql指令参考-----------------------------
验证MySQL服务器的状态: service mysqld status
验证所安装的MySQL版本: mysql --version
启动mysql: service mysqld start
停止mysql: service mysqld stop
查看mysql相关进程: ps aux | grep mysqld
------------------------------------------------------------------
4.1执行mysql初始化然后启动
/usr/sbin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql
4.2启动失败,打开MySQL的日志文件,输入命令:
vim /var/log/mysqld.log
得到如下报错日志:/tmp没有权限
解决方案(出现错误一定要看日志,才能针对问题给出解决方案):chmod 777 /tmp
如下解决:
最终启动成功:
5. 修改密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
grep 'temporary password' /var/log/mysqld.log
输入指令 mysql -u root -p 准备登录
输入默认密码登录进入后,输入指令 ALTER USER 'root'@'localhost' IDENTIFIED BY '0821'; 准备将root用户的密码设置为0821,结果出错
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:
所以将密码改为符合规则就可以了。
比如 set password for 'root'@'localhost'=password('MyNewPass4!');
通过msyql环境变量可以查看密码策略的相关信息:
show variables like '%password%';
validate_password_policy:密码策略,默认为MEDIUM策略
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个
6.导入.sql文件
假设现在要在mysql中导入数据库Pr_exam,
6.1建立数据库:
mysql> create database pr_myexam;
6.2进入数据库:
mysql> use pr_myexam;
6.3设置编码:
mysql> set names utf8;
如下图:
6.4导入数据库 pr_myexam.sql
输入你所导入到Centos下的数据库文pr_myexam.sql文件的位置
mysql>source /data/pr_myexam.sql;
pr_myexam.sql文件使用xtfp工具上传到/data文件夹下:
接着你会看到屏幕上很多查询语句的成功,然后就OK了。
退出数据库:mysql > exit;
7.缓存设置
MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下;在Linux下叫my.cnf,该文件位于/etc/my.cnf 。
注意:我们要修改my.cnf文件下的缓存设置,不然会因为mysql吃内存导致奔溃。
在配置文件my.cnf中,默认的Initializing buffer pool, size = 128.0M (假设我们的服务器只有1G内存,而且我们有5个缓冲池,那么Mysql的缓冲池就要占用系统5*128M的大小)如果你用innodb 这个值简直就不可想象啊!
8.允许远程登录
在服务器中登录mysql后,输入:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
如下图所示:
然后在你的windowPC上的navicat客户端中新建一个连接,如下配置:
9.配置编码为utf8
第8步成功远程连接mysql后,输入查询语句:
show variables like '%character%';
发现需要更改mysql的编码,使用xftp工具,打开 /etc/my.cnf
将my.cnf文件传输到本地更改最后再提交(也可以通过shell命令更改),更改的内容就是添加:
character-set-server=utf8
如下图所示:
最后重启mysql服务即可。
修改mysql编码配置后,同样在远程navicat中输入查询语句得到:
如果是在windows环境中更改mysql的编码,则到mysql安装目录的my.ini修改即可。