Centos7.4 安装Mysql 8

第一部分 CentOS7安装mysql

1.1 安装前清理工作;

1.1.1 清理原有的mysql数据库;

使用以下命令查找出安装的mysql软件包和依赖包:

rpm -pa | grep mysql

显示结果如下:

1 mysql80-community-release-el7-1.noarch
2 mysql-community-server-8.0.11-1.el7.x86_64
3 mysql-community-common-8.0.11-1.el7.x86_64
4 mysql-community-libs-8.0.11-1.el7.x86_64
5 mysql-community-client-8.0.11-1.el7.x86_64

使用以下命令依次删除上面的程序

yum remove mysql-xxx-xxx-

删除mysql的配置文件,卸载不会自动删除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

可能的显示结果如下:

1 /etc/logrotate.d/mysql
2 /etc/selinux/targeted/active/modules/100/mysql
3 /etc/selinux/targeted/tmp/modules/100/mysql
4 /var/lib/mysql
5 /var/lib/mysql/mysql
6 /usr/bin/mysql
7 /usr/lib64/mysql
8 /usr/local/mysql

根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

  

1.2 安装mysql

1.2.1 下面mysql官网提供的mysql repo源

centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;

mysql官网下载链接:mysql repo下载地址 如下:

1.2.2 使用putty的pscp将文件上传到CentOS

使用putty将F:盘下刚下好的mysql repo文件上传到Centos/usr/local/mysql文件夹下;

D:\Putty>pscp F:\mysql80-community-release-el7-1.noarch.rpm root@192.168.145.136:/usr/local/mysql/

1.2.3 安装 yum repo文件并更新 yum 缓存;

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

执行结果:

会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo

更新 yum 命令

1 yum clean all
2 yum makecache

1.2.4 使用 yum安装mysql

当我们在使用yum安装mysql时,yum默认会从yum仓库中安装mysql最新的GA版本;如何选择自己的版本;

第一步: 查看mysql yum仓库中mysql版本,使用如下命令

yum repolist all | grep mysql

1.2.5 安装mysql 命令如下:

yum install mysql-community-server

1.2.6 开启mysql 服务

systemctl start mysqld.service

1.2.7 获取初始密码登录mysql

mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;

cat /var/log/mysqld.log | grep password

使用初始密码登录mysql

mysql -u root -p 

修改初始密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'passowrd';

另外一种密码加密模式(为了适应sqlyog 或者 navicat 登录 , 因为这些软件目前还没mysql最新版的密码加密方式,登录用的还是老模式):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 

设置Mysql可以远程访问

use mysql;
select host,user,authentication_string,plugin from user;
update user set host='%' where user='root';

  

如果要让数据库表不区分大小写,使用

vim /etc/my.cnf

在my.cnf文件末尾加入 lower_case_table_names=1 即可.

注意,如果数据库之前已经有数据了,即已经创建了数据库和表,那么需要把这些数据全部清空掉.否则会造成数据库无法启动.
如果查看日志一直出现 Different lower_case_table_names settings for server ('1') and data dictionary ('0')
删除 MySQL的数据 rm -rf /var/lib/mysql
然后在初始化的时候加入选项:
[root@myname ]# /usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1 

2. GROUP BY clause and contains nonaggregated column 'xxxxxxxxxxx' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

这是因为SELECT @@global.sql_mode;为only_full_gro up_by,解决方法是在编辑: cat /etc/my.cnf ,加入一行:

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

然后重起:systemctl restart mysqld.serivice

1.2.8 将mysql 服务加入开机启动项,并启动mysql进程

systemctl enable mysqld.service
systemctl start mysqld.service

常用mysql服务命令:

登录mysql
mysql -u username -p
 
退出mysql 
quit
 
启动mysql
systemctl start mysqld.service
 
结束
systemctl stop mysqld.service
 
重启
systemctl restart mysqld.service
 
开机自启
systemctl enable mysqld.service
 
查看mysql版本
select version();

 

 

posted @ 2018-08-13 13:17  cearnach  阅读(972)  评论(1编辑  收藏  举报