Linux

centos7 解压安装mysql——CentOS7常用软件

2018-12-10  本文已影响3人  maxzhao_

来自那些年我踩过的坑,遇到坑请提出来大家一起看看
都说MySql8.x比5.7快两倍,可以参考一下。
但不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本)。数据备份方式还是可以的。

这里安装的是MySql 8

下载地址:https://dev.mysql.com/downloads/mysql/8.0.html
我这里下载的是mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

一、解压mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

首先解压,输入mysql按tab补齐,/home/mysql是自己想要安装的目录.
没有权限用su输入root密码,用root执行。
tar -xvf报gz错误,就用tar -zxvf 解压命令

tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.13-linux-glibc2.12-x86_64 /home/mysql
cd /home/mysql

二、可以先把mariadb卸载了

mariadb其实与mysql是一样的,只不过mysql之父离开了Oracle,觉得依靠Oracle不靠谱,想做一个完全开源的数据库,这就是mariadb,mariadb的端口还是3306。

rpm -qa|grep mariadb
#mariadb-libs-5.5.60-1.el7_5.x86_64
rpm -e --nodeps mariadb  #tab补齐
#删除etc目录下的my.cnf文件
#可以先看一下my.cnf文件里面写的什么
cat /etc/my.cnf
#如果mariadb没有启动过,里面的文件夹和文件都不用看了,都是不存在的(也可以不删除,后面还会创建)
rm /etc/my.cnf
#检查mysql有没有安装
rpm -qa | grep mysql

三、检查mysql组和用户是否存在,如无创建

cat /etc/group | grep mysql 
cat /etc/passwd | grep mysql
#没有就u添加
groupadd mysql
useradd -g mysql mysql 
passwd mysql
#当前所属赋给mysql
mkdir /home/mysql/data
#在mysql中添加data文件夹
chown -R mysql /home/mysql/
chgrp -R mysql /home/mysql/
#chown -R mysql:mysql /home/mysql/ 效果一样

四、在/etc下创建my.cnf

编码在5.5.3以上都会支持utf8mb4(utf8 most byte 8),意思是支持4byte的不常用汉字和Emoji表情,毕竟65535还真的是不够用。
对于 CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 Mysql 官方建议,使用 VARCHAR 替代 CHAR。

vim /etc/my.cnf

删除所有内容,添加下面内容

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
skip-name-resolve
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=/home/mysql
# 设置mysql数据库的数据的存放目录
datadir=/home/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎,innodb支持事物
default-storage-engine=INNODB 
lower_case_table_names=1
max_allowed_packet=16M

五、安装

#已经不用的命令
#bin/mysql_install_db --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/
bin/mysqld --initialize --user=mysql  --datadir=/home/mysql/data/ 

记住密码,比如我的Lpo9n/(w-1=;(输入n次失败的悲哀)

安装失败,可以看一下mysql 账户对/home/mysql下的文件有没有读写权限
如果执行报错UTF8MB4,就把/etc/my.cnf的utf8换成UTF8MB4

六、连接

启动(&是放在后台执行)

bin/mysqld_safe --user=mysql &
bin/mysqld -uroot -p

然后执行(但是如果使用无密码的方式登陆,就不可以使用下面令名)

bin/mysql  -uroot -p  
#输入密码
mysql>alter user 'root'@'localhost' identified by "123456";
#创建远程连接
mysql> create user root@'%' identified by '123456';
mysql>grant all privileges on *.* to root@'%';
mysql>flush privileges;

无密码的方式,可用于找回密码。
输入一百次也输入不对默认密码
配置文件 MySQL 免密码登录
编辑 MySQL 的配置文件

vim /etc/my.cnf
#在 datadir开头的下面一行加入下面这句
skip-grant-tables

修改密码(记得删除my.cnf文件的东西)

bin/mysql 
use mysql;
update user SET Password = 'new-password' WHERE User = 'root'; 

七、后续操作

创建软连接

ln -s /home/mysql/bin/* /usr/local/bin/
/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件。

添加服务

将服务文件拷贝到init.d下,并重命名为mysqld
cp support-files/mysql.server /etc/init.d/mysqld
赋予可执行权限
chmod +x /etc/init.d/mysqld
添加服务
chkconfig --add mysqld
关闭firewall,安装iptables可选(比如服务器就需要开放3306)

结束

上一篇下一篇

猜你喜欢

热点阅读