centos7.0环境安装mysql5.7.17
参考:
http://www.cnblogs.com/jr1260/p/6590232.html
1系统约定
安装文件下载目录:/data/software
Mysql目录安装位置:/usr/local/mysql
数据库保存位置:/data/mysql
日志保存位置:/data/log/mysql
2下载mysql
在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:
执行如下命名:
#mkdir /data/software
#cd /data/software
--安装包
用工具(Xftp)上传到 /data/software目录下;
3解压压缩包到目标位置
#cd /data/software
--解压压缩包
#tar -xzvf /data/software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
--移动并修改文件名
#mv /data/software/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql
4创建数据仓库目录
--/data/mysql 数据仓库目录
# mkdir /data/mysql
#ls /data/
5新建mysql用户、组及目录
#groupadd mysql ---新建一个mysql组
# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell
6改变目录属有者
#cd /usr/local/mysql
#pwd
#chown -R mysql .
#chgrp -R mysql .
#chown -R mysql /data/mysql
7配置参数
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
此处需要注意记录生成的临时密码,如上文结尾处的:YLi>7ecpe;YP
#bin/mysql_ssl_rsa_setup --datadir=/data/mysql
8修改系统配置文件
#cd /usr/local/mysql/support-files
# cp my-default.cnf /etc/my.cnf
# cp mysql.server /etc/init.d/mysql
# vim /etc/init.d/mysql
9启动mysql
# /etc/init.d/mysql start
--登陆
# mysql -hlocalhost -uroot -p
--如果出现:-bash: mysql: command not found
--就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行
--输入第6步生成的临时密码
--修改密码
mysql> set password=password('root');
--设置root账户的host地址(修改了才可以远程连接)
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql>flush privileges;
--查看表
mysql> use mysql;
mysql> select host,user from user;
--这里就可以使用远程连接测试了;
10添加系统路径
# vim /etc/profile
添加:
export PATH=/usr/local/mysql/bin:$PATH
如下:
# source /etc/profile
11配置mysql自动启动
# chmod 755 /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig --level 345 mysql on
本地访问的密码跟远程不同时运行:
update mysql.user set authentication_string=password('1qaz2wsx') where user='root';
mysql区分表名大小写:
sql_mode=NO_ENGINE_SUBSTITUTION
group by语句报错:
sql_mode=NO_ENGINE_SUBSTITUTION
查询数据库编码:
show variables like '%char%'; //如下图显示为utf-8编码
【备注】
①如何启动/停止/重启MySQL
一、启动方式
1、使用service启动:service mysql start
2、使用mysqld脚本启动:/etc/init.d/mysql start
二、停止
1、使用service启动:service mysql stop
2、使用mysqld脚本启动:/etc/init.d/mysql stop
三、重启
1、使用service启动:service mysql restart
2、使用mysqld脚本启动:/etc/init.d/mysql restart
②原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:
1、用root登录,修改 vi /etc/my.cnf;
2、在[mysqld]节点下,加入一行: lower_case_table_names=1
3、重启MySQL即可;
③其它服务连接不了mysql 10038错误
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES 使修改生效.就可以了
另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
在安装mysql的机器上运行:
1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root's password' WITH GRANT OPTION //赋予任何主机访问数据的权限
3、mysql>FLUSH PRIVILEGES //修改生效
4、mysql>EXIT //退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!
防火墙开放3306端口:
1、打开防火墙配置文件
vi /etc/sysconfig/iptables
2、增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3、重启防火墙
service iptables restart
注意:增加的开放3306端口的语句一定要在icmp-host-prohibited之前
修改MySQL的数据库编码设置为UTF-8:
编辑 /etc/my.cnf,
在里面加入,已经有[XXX]的,在里面直接加入即可。
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
然后重启数据库即可,service mysql restart.
补充:
--退出mysql命令窗口
#exit
--查看mysql状态
#service mysql status
--停止mysql
#service mysql stop
--启动mysql
#service mysql start