一 官网下载MySql
- 进入官网,点击"DOWNLOAD"
点击“Community”
点击左侧"MySql Community Server "
下拉页面,选择"Linux -Generic",然后选择下边的适合自己系统(32位/64位)的版本即可
将下载下来的压缩包上传到/usr/local目录并进行解压
xz -d mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
这样解压后得到的是.tar文件,再次进行解压:
tar -xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar
二 centos7下安装MySql_8.0.12
查看机器是否安装过mysql
CentOS6
rpm -qa|grep mysql
请先执行卸载命令:rpm -e --nodeps mysql-libs- CentOS7
rpm -qa|grep mariadb
请先执行卸载命令:rpm -e --nodeps mariadb-libs
- CentOS7
1. 将上边解压后得到的mysql文件修改名字,方便后边操作
mv mysql-8.0.12-linux-glibc2.12-x86_64 mysql
2. 进入mysql文件夹,创建data目录
cd mysql;
mkdir data;
3.添加用户组(可以不添加)
groupadd mysql
useradd -g mysql mysql
4.设置mysql目录权限,把权限交给mysql用户/用户组
chown -R mysql.mysql /usr/local/mysql/
5.将mysql的脚本服务放进系统服务里
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
6.修改/etc/my.cnf文件
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8
log-error=/var/log/mysqld.log
pid-file=/home/mysql/mysqld.pid
7.新增log与pid文件
vi /var/log/mysqld.log;#什么也不写,直接保存退出
#赋权限
chown -R mysql /var/log/;
chgrp -R mysql /var/log/;
vi /home/mysql/mysqld.pid;#什么也不写,直接保存退出
chown -R /home/mysql/mysqld.pid;
chgrp -R /home/mysql/mysqld.pid;
8.进入mysql安装目录的bin目录进行初始化
cd /usr/local/mysql/bin/;
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/--datadir=/usr/local/mysql/data/;
9.先进入cd support-files目录里,把support-files/mysql.server 拷贝为/etc/init.d/mysql
cd /usr/local/mysql/support-files/;
cp mysql.server /etc/init.d/mysql;
chmod +x /etc/init.d/mysql;#设置权限
10.将mysql服务设置为开机自启
chkconfig --add mysql
11.做一个软连接,方便在任意目录都能开启/登录mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin;
12.开启mysql
service mysql start
13.登录mysql
- 先查看生成的初始密码
cat /var/log/mysqld.log
2.登录
mysql -u root -p
然后会提示输入密码,把上边图片里的密码输入即可;
14.登录进去后第一件事就是修改root用户密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'newpassword';
配置远程登录
mysql>use mysql;#使用mysql库
mysql>select user,host from user;#host是远程主机地址,可以写成%,即所有远程地址;
将mysql数据库user表里的root用户的host改成% ,即所有远程地址都可以访问
update user set host='%' where user='root';
允许root用户进行远程登录
GRANT ALL ON *.* TO 'root'@'%';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';#root是用户名 mysql默认的是root password是密码自己设置 %表示任意主机,也可以指定ip地址
如果登录时出现如下错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);
解决方法:
- 配置免密登录
vi /etc/my.conf #在任意位置添加下边的一行 skip-grant-tables #配置免密码登录 #保存退出后重启mysql service mysql restart;
- 直接在窗口出入mysql后回车即可登录了
mysql #直接回车即可登录
- 以此执行如下命令
flush privileges;#刷新权限
alter user 'root'@'%'identified by 'root@123';#修改密码为‘root@123’
quit;#退出
- 再将my.conf里的免密登录删除,重启mysql即可
vi /etc/my.conf #在任意位置添加下边的一行 #skip-grant-tables #将这行删除或注释掉 #保存退出后重启mysql service mysql restart;
忘记root用户登录密码
- 在/etc/my.cnf里添加免密登录
skip-grant-table
- 重启mysql并登录
service mysql restart; mysql -u root -u; #直接回车登录,密码不用输
- 刷新权限
flush privileges;
- 修改密码
use mysql; alter user 'root'@'%' IDENTIFIED BY 'root';