mysql
mysql
安装前工作
在安装前需要确定现在这个系统有没有 mysql,如果有那么必须卸载(在 centos7 自带的是 mariaDb 数据库,所以第一步是卸载数据库)。
查看mariadb数据库:
rpm -qa | grep mariadb
卸载mariadb数据库:
rpm -e --nodeps mariadb文件名
查看 mysql 数据库:
rpm -qa | grep -i mysql
卸载 mysql 数据库:
rpm -e mysql文件名 # 如果有关联文件,不能直接卸载。可以用一下命令强制卸载:
rpm -e --nodeps mysql文件名)
删除etc目录下的my.cnf文件:
rm /etc/my.cnf
下载
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
安装
cd /usr/local
rz
tar xzvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
rm -rf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql
mkdir /usr/local/mysql/data
主目录权限处理
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
userdel -r mysql #若存在,则删除原mysql用户,会删除其对应的组和用户
groupadd mysql #创建mysql组
useradd -r -g mysql mysql #创建mysql用户
chown -R mysql:mysql /usr/local/mysql
创建配置文件及相关目录
vim /etc/my.cnf #修改配置文件,配置不对的话,后面初始化不全,会拿不到默认密码。
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
cd /tmp
touch mysql.sock
chown mysql:mysql mysql.sock
chmod 755 mysql.sock
mkdir /tmp/mysqld
touch /tmp/mysqld/mysqld.pid
cd /tmp
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid
touch /var/log/mysqld.log
chown -R mysql:mysql /var/log
cd /var/log
chmod 755 mysqld.log
初始化数据库
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
如果出错:
yum install -y libaio
./mysqld_safe --user=mysql & #安全启动
ps -ef | grep mysql #查看是否启动成功
cat /var/log/mysqld.log #默认密码在mysqld.log日志里, 找到后保存到安全的地方
其中root@localhost: 后面的(root@localhost: e3.gO3NVhOp5)就是默认密码,后面登录用.(如果找不到可能默认是空,登录时密码直接回车,否则可能安装有问题)
修改密码
cd /usr/local/mysql/bin/ #进入bin目录:
./mysql -u root -p #登录mysql,拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端
show databases; #但是,若输入相关命令,则会提示你修改用户密码(注意后面一定要加;)
set password=password("root");
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root'; #设置远程登录权限
mysql> flush privileges; #立即生效
exit
开机启动设置
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --list mysql #查看mysql服务是否在服务配置中
chkconfig --add mysql #若没有,则把mysql注册为开机启动的服务,然后在进行查看
启动、停止
service mysql start
service mysql stop
登录
mysql -u root -p #登录
ln -s /usr/local/mysql/bin/mysql /usr/bin #设置快捷登录
坑
1、1130 - Host is not allowed to connect to this mysql servere
mysql -u root -p #登录
use mysql;
select host,user from user; #进行查看
update user set host='%' where user='root'; #修改权限,将Host设置为通配符%
flush privileges; #使配置立即生效
设置win10上允许ip访问
参考网址
https://www.cnblogs.com/beyang/p/4905309.html
#运行cmd,执行此命令,提示输入密码
mysql -u root -p
#进入mysql执行以下命令
grant all privileges on *.* to 'root'@'192.168.1.11' identified by 'root';
#说明grant all privileges on *.* to '用户名'@'IP地址' identified by '密码';
#刷新权限
flush privileges;
重启服务