目录
1、卸载mariadb数据库
查询linux中是否安装了mariadb数据库 如果有则删除
rpm -qa|grep mariadb
删除mariadb数据库
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64
强制删除
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2、下载mysql
去mysql官方网站下载mysql的数据库,我这里下载的是(mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz)版本,解压之后进行配置启动即可。
在linux系统中使用wget命令也可以下载
MySQL :: Download MySQL Community Server (Archived Versions)
3、上传mysql到linux
通过ftp工具将下载下来的mysql安装包上传到linux服务器上
4、解压
将上传到服务器上的mysql安装包解压到 /usr/local 目录下
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz /usr/local/mysql-8.0.13
5、安装mysql
进入到mysql的目录里
cd mysql-8.0.13
创建mysql的数据目录(–datadir=/usr/local/mysql-8.0.13/data/)
mkdir data
创建mysql的日志文件目录(–logs=/usr/local/mysql-8.0.13/logs/)
mkdir logs
创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
改变 mysql 目录权限
chown -R mysql:mysql ./
建立socket文件夹提权并划分文件用户和组:(socket=/var/lib/mysql/mysql.sock)
mkdir -p /var/lib/mysql
-p表示递归创建
chmod 766 /var/lib/mysql -R
-R对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
chown mysql:mysql /var/lib/mysql/ -R
-R对目前目录下的所有文件与子目录进行相同的拥有者变更
配置mysql的配置文件 vim /etc/my.cnf
[mysql]
#mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
# #
[mysqld]
socket=/var/lib/mysql/mysql.sock
# # #mysql的安装目录
basedir=/usr/local/mysql-8.0.13
# # ##mysql的数据存放目录
datadir=/usr/local/mysql-8.0.13/data
# # ##端口
port=6696
# # ##服务端使用的字符集默认为8比特编码的latin1字符集
character_set_server=utf8mb4
# 服务端默认的比对规则,排序规则
collation_server = utf8mb4_bin
# # ## 最大连接数量
max_connections=100
# # ##单个内存表的最大值限定
max_heap_table_size = 64M
# # ##为每个线程分配的排序缓冲大小
sort_buffer_size = 8M
# # ##join 连表操作的缓冲大小,根据实际业务来设置,默认8M
# #join_buffer_size=32M
# # ## sql查询缓存,如果提交的查询与几次中的某查询相同,并且在query缓存中存在,则直接返回缓存中的结果
# #query_cache_size=64M
# # ##指代mysql服务器端和客户端在一次传送数据包的过程当中数据包的大小
max_allowed_packet = 1024M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#错误日志
log-error=/usr/local/mysql-8.0.13/logs/error.log
#查询日志,对所有执行语句进行记录
general_log=on
general_log_file=/usr/local/mysql-8.0.13/logs/queryLog.log
#开启慢查询
slow_query_log = on
#慢查询中记录没有使用索引的query
log-queries-not-using-indexes=on
#慢查询时间,这里为2秒,超过2秒会被记录
long_query_time=2
#返回较慢的日志mysql5.6版本以上,取消了参数log-slow-queries,更改为slow-query-log-file
slow-query-log-file=/usr/local/mysql-8.0.13/logs/slowQuery.log
# #不使用密码登录
#skip-grant-tables=1
初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.13/ --datadir=/usr/local/mysql-8.0.13/data/
设置开机启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
+x赋予执行权限
设置mysql系统环境变量后并使其生效
vi /etc/profile
export PATH=$PATH:/usr/local/mysql-8.0.13/bin
使配置后的环境变量生效
source /etc/profile
将mysql添加到系统服务中
chkconfig --add mysqld
查看添加的mysql服务是否生效
chkconfig --list mysqld
启动和mysql
systemctl start mysqld
重启命令
systemctl restart mysqld
systemctl是centos7的启动服务命令
登录mysql 然后输入密码 初始化的时候会生成初始密码 如果没有配置日志路径 初始密码则会在初始化的时候直接显示 如果配置了日志路径 初始化密码则会在日志文件中
mysql -uroot -p
修改默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'test123';
IDENTIFIED BY 后面的引号里面的字符串是你设置的密码
flush privileges;
刷新权限
允许用户远程登录
切到mysql数据库
use mysql;
查询用户
select user, host from user
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
更新用户root的host
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
重启mysql 使用Navicat工具连接mysql数据库有如下报错 需要更改mysql的密码加密规则。mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;
修改mysql8 的密码加密规则
也可以在my.cnf配置文件中配置 default_authentication_plugin=mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
#修改加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
#更新一下用户的密码
FLUSH PRIVILEGES;
#刷新权限
再次使用Navicat连接数据库