查看系统信息:
cat /etc/redhat-release
首先安装基本依赖和工具:
yum -y install gcc libxml2-dev curl screen \libpng12-dev autoconf libpcre3-dev make bzip2 \libevent-dev patch libjpeg62-dev libcurl4-openssl-dev \libfreetype6-dev g++ libtool libncurses5-dev psmisc lrzsz
yum install make cmake gcc gcc-c++
【1】下载安装yum源
下载rpm包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
当然,如下图所示,在http://repo.mysql.com/这个地址中我们可以选择其他的源。
检查rpm包是否安装成功(出现如下图所示则为安装成功)
ls -1 /etc/yum.repos.d/mysql-community*
如下图所示安装成功后我们得到了两个mysql的yum源。
repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
【2】安装mysql
yum install mysql-server mysql-devel mysql
安装成功如下图所示:
是不是迫不及待想要启动mysqld服务?
service mysqld start
提示错误如下:
意思是说,在/etc/init.d/mysqld
文件中的第276行,打开/usr/local/mysql
失败,没有该文件或者路径不存在。
查看/etc/init.d/mysqld
文件:
basedir,datadir,和bindir都在/usr/local/mysql
下
去该路径下查看一番。
确实没有mysql文件夹!!!当然启动失败了。
Centos7.X+正确启动(停掉)方式:
# 启动服务
systemctl start mysqld
# 关闭服务
systemctl stop mysqld
# 查看服务状态
systemctl stop mysqld
【3】启动并修改mysql密码
上面说了,启动命令如下:
systemctl start mysqld
查看mysql的启动状态:
systemctl status mysqld
开始连接:
mysql -u root -p
使用安装过程中产生的临时密码登录。继续操作提示如下:
You must reset your password using ALTER USER statement before executing this statement.
step 1: SET PASSWORD = PASSWORD('your new password');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
如果你的安装过程么有出现临时密码,而是如下图所示:
那么使用命令初始化密码:
/usr/bin/mysqladmin -u root password '123456'
如果你不知道密码,忘记root密码修改办法:
http://blog.csdn.net/J080624/article/details/78286239
【4】添加远程连接权限
以root用户登录mysql
mysql -uroot -p
- 赋予远程连接权限
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
执行完会在mysql.user表插入一条记录,all表示所有权限(包括增 删 改 查等权限), *.*
表示所有数据库,root为添加的用户名,123456为密码,%
为匹配的所有主机。
赋予部分权限如:
grant select,update on *.* to root@'%' identified by '123456';
- 从user表中查看host,user和password
use mysql;
select host,user,password from user;
- 使用Navicat Premium连接测试
【5】设置开机启动
systemctl enable mysqld
systemctl daemon-reload
- reboot重启测试
ps -ef|grep mysql
【6】修改默认编码
查看默认编码
show variables like '%character%';
修改编码为utf-8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重新启动mysql服务,查看数据库默认编码如下所示:
在MySQL8.0之前默认字符集是Latin1,utf8字符集指向的是utf8mb3。从MySQL8.0开始,数据库默认字符集是utf8mb4,彻底避免乱码问题。实际在上面修改字符集的时候,也应该显示指定为utf8mb4。
【7】配置文件路径
该系统下默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
pid文件:/var/run/mysqld/mysqld.pid
socket文件:/var/lib/mysql/mysql.sock
数据文件:/var/lib/mysql
/var/lib/mysql
文件路径下结构图如下:
其中 ibdata1存放的即为数据库的数据。
【8】设置软连接
mysql默认的basedir:/usr/local/mysql
。
而我们安装成功后的basedir :/usr
。
这也是为什么使用下面命令启动不成功的原因。
service mysqld start
如何才能使用这种方式启动?建议使用软连接:
ln -s /usr /usr/local/mysql
此时可以使用两种方式启动,对比图如下:
service mysqld start
or
systemctl start mysqld
【9】完全删除mysql
① 关闭MySQL服务
# centos6
service mysqld stop
# centos7
systemctl stop mysqld
② 查看当前MySQL安装状况
rpm qa |grep -i mysql
# 或
yum list installed |grep mysql
③ 卸载上述命令查询出的已安装程序
yum remove mysql-xxx mysql-xxx
find / -name mysql 将找到的相关东西delete掉;
rpm -qa|grep mysql(查询出来的东东yum remove掉)
务必卸载干净, 反复执行rpm qa |grep -i mysql
确认是否有卸载残留。
④ 删除mysql相关文件
查找相关文件
find / -name mysql
删除上述命令查找出的文件
rm -rf xxx
⑤ 删除my.cnf
通常是/etc/my.cnf
文件,这个需要根据自己环境和MySQL版本来确定一下。
rm -rf /etc/my.cnf
【10】MySQL8.X的操作
如下所示操作在MySQL8环境下会直接报错:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456!' with grant option;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456' with grant option' at line 1
数据库操作(Centos7.x+)
# 查看状态
systemctl status mysqld
# 启动
systemctl start mysqld
# 停止
systemctl stop mysqld
# 重启
systemctl restart mysqld
① 创建用户并赋权
# 创建用户并设置密码
create user 'root'@'%' identified by '123456';
#赋予权限
grant all on *.* to 'root'@'%' with grant option;
#刷新MySQL的系统权限相关表
flush privileges;
授权完可以查看授权信息:
show grants for 'root'@'%';
查看字符集(如下所示,我们不用再手动修改)
② MySQL8配置文件
Cento8下使用yum安装MySQL默认版本是MySQL8.X,这里配置文件路径在/etc/my.cnf.d
下,如下所示:
[root@VM-24-14-centos my.cnf.d]# pwd
/etc/my.cnf.d
[root@VM-24-14-centos my.cnf.d]# ll
total 12
-rw-r--r-- 1 root root 324 Jan 24 22:16 client.cnf
-rw-r--r-- 1 root root 565 Sep 2 02:53 mysql-default-authentication-plugin.cnf
-rw-r--r-- 1 root root 674 Jan 24 22:17 mysql-server.cnf
当然,/etc/my.cnf
同样存在,其作为client-server的公共配置如下图所示: