本文参考:codesheep 编程环境和软件工具安装手册
1.检查系统自带Mariadb,卸载
rpm -qa|grep mariadb
卸载
yum -y remove mariadb-server-5.5.56-2.el7.x86_64
2.上传、解压安装包
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
将解压后的安装包改名为mysql
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql
3.创建mysql组、用户、data目录,修改所属用户
groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
4.在/etc下修改文件,有的可能没有,新建一个
vi my.cnf
[mysql]
# 设置mysql客户端默认字符集
character-set-server=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
一开始字符集用的 default-character-set=utf8,安装时报错,网上查找后修改为:character-set-server=utf8
5.创建目录,赋予权限
mkdir /var/lib/mysql chmod 777 /var/lib/mysql
6.切到mysql解压目录,安装
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6.1报data目录下有文件的
解决:
检查data目录下确实有文件,可能是刚才安装没成功生成的,备份后删掉
再次执行安装,成功,红框中为root账户,初始化密码,要记下来
7.复制启动脚本到资源⽬录
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
并修改mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
8.增加mysqld服务控制脚本执行权限,将mysqld加入系统服务
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
检查mysqld服务是否已经⽣效
chkconfig --list mysqld
这样就表明mysqld服务已经⽣效了,在2、3、4、5运⾏级别随系统启动⽽⾃动启动,以后可以直接使用service mysqld start 启停了
9.启动
service mysqld start
报错:
缺少my.cnf中的文件,刚才自动关机了,没图了。。。
解决:
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
mkdir /var/run/mariadb
touch /var/run/mariadb/mariadb.pid
再次启动报错
The server quit without updating PID file (/usr/local/mysql/data/localhost.localdimain.pid)
检查data目录权限,没问题,网上找到,删除 /etc/my.cnf , 备份后删除
再次启动,这是第二次启动截图,第一次启动时,success前有一个.err结尾的文件路径
10.将mysql的bin目录,加入到环境变量
vi ~/.bash_profile
source ~/.bash_profile
11.登陆mysql
一定要先添加环境变量,在登陆,不然登陆不上
数据上边生成的初始密码
12.修改root账户的密码
mysql>alter user user() identified by "111111";
mysql>flush privileges;
13.测试密码
14.宿主机用navicate连接
报错:unknown err
解决:
赋予权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
查看防火墙状态;
firewall-cmd --state
停止防火墙;
systemctl stop firewalld.service
禁用防火墙;
systemctl disable firewalld.service
selinux没动。
测试: