linux环境安装MySQL5.7数据库
部署环境
CentOS Linux release 7.7.1908 (Core)
准备安装包
MySQL :: Download MySQL Community Server
卸载系统自带的Mariadb
rpm -qa|grep mariadb 查看是否有相关安装的rpm包
yum -y remove mariadb-libs-5.5.64-1.el7.x86_64 卸载
解压MySQL安装包
cd /usr/local 切换到该目录下
tar -xzvf ./mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz 解压缩
mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql 将其重命名为mysql
创建mysql用户和用户组
groupadd mysql 创建mysql用户组
useradd -g mysql mysql 创建mysql用户
修改mysql目录的归属用户
cd /usr/local/mysql 切换到mysql目录
mkdir data 在/usr/local/mysql下创建data目录
chown -R mysql:mysql ./ 更改mysql目录及其级联子目录属主
mkdir /var/lib/mysql 在/var/lib下创建mysql目录
chmod 777 /var/lib/mysql 更改此mysql目录权限
my.cnf配置文件
touch /etc/my.cnf 在etc下创建my.cnf配置文件(mysql会默认到这里读取该配置文件)
vi /etc/my.cnf 编辑my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=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
:wq 保存退出
这里my.cnf的属主改不改成mysql都行
mysql安装及初始化
cd /usr/local/mysql 切换到mysql主目录
./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mysql安装,并且不创建密码,设置主目录和数据目录
设置开机启动
cp ./support-files/mysql.server /etc/init.d/mysqld 复制启动脚本到资源目录
vi /etc/init.d/mysqld
更改以下配置
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
:wq保存退出
chmod +x /etc/init.d/mysqld 增加执行权限
chkconfig --add mysqld 加入开机自启
chkconfig --list mysqld 验证开机自启是否生效
2 3 4 5均为开表示生效
启动MySQL服务
service mysqld start
加入环境变量并启动mysql客户端
vi /etc/profile 编辑环境变量文件
添加以下配置
export PATH=$PATH:/usr/local/mysql/bin
:wq保存退出
source /etc/profile 立即生效环境变量
mysql -uroot -p 登录mysql客户端
出现Enter password:时不用管,初始化时已配置初始无密码,再次Enter即可登录
为root添加密码并添加远程登录
mysql>alter user user() identified by "123456"; 设置密码为123456
mysql>flush privileges; 生效
mysql> use mysql; 使用 mysql schema
mysql> update user set user.Host='%' where user.User='root'; 设置远程主机的限制为所有
mysql> flush privileges; 生效
在宿主机使用Navicat远程连接测试是否成功