1、查看linux系统是否安装mysql ,如果未安装执行下面命令应该为空的
rpm -qa|grep -i mysql
2、在linux服务器端执行此命令下载源到服务器
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
3、安装yum源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
4、查看所有yum源
yum repolist all| grep mysql
6、切换要安装的源(切换为5.7版本mysql)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
7、安装mysql 5.7
yum install mysql-community-server -y
7.1 可能会报如下错误
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
8、启动mysql server
systemctl start mysqld 启动程序
systemctl enable mysqld 开机自运行
systemctl status mysqld 查看状态
9、查看初始密码
cat /var/log/mysqld.log|grep pass
或者
grep 'temporary password' /var/log/mysqld.log
10、本地登陆mysq
mysql -uroot -p
11、修改本地root用户密码,根据自己情况修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@123456';
12、建立root远程用户并授权
创建用户
create user 'linux_mysql'@'%' identified by 'root@123456'
授权:登录本地数据库,让本不能远程共享的数据库,能够远程连接,远程连接顾名思义就是所有IP都能连接数据库,而非单单只限制为localhost本地账户。
grant all privileges on . to 'linux_mysql'@'%'identified by 'fzly1997' with grant option;
刷新
flush privileges;
13、防火墙设置
(1)服务器的防火墙mysql端口3306是否开放
firewall-cmd --query-port=3306/tcp
(2)设置3306端口为永久开放
firewall-cmd --add-port=3306/tcp --permanent
(3)查看firewalld状态,发现当前是dead状态,即防火墙未开启
systemctl status firewalld
(4)关闭防火墙
systemctl stop firewalld
(5)重启防火墙(设置了新的端口记得重新防火墙)
systemctl restart firewalld
14、常用语句
select version(); 展示mysql版本
show databases; 查看所有数据库
create database xxx; 新建数据库
use xxx; 切换到xxx数据库
source /xxxx/xxxx.sql 导入xxx文件
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root@123456';
常见问题
1、执行mysql报 [Error Code: 1366, SQL State: HY000] Incorrect string value: ‘\xE5\x85\xAD\xE6\x9C\x88’ for column ‘IN_STR1’ at row 1
原因:导库导入SQL文件时候需要设置编码utf8
CREATE DATABASE IF NOT EXISTS 库名 CHARACTER SET utf8;
2、导入SQL数据库文件可能没有导入函数,需要重新导入一遍函数的SQL。只能命令行导入
3、Linux下的MySQL默认是区分表名大小写的,mysql对表起名时是无法用大写字母的,而查询用了大写字母却会出查不到的错误
解决方案 修改 /etc/my.cnf(或者my.ini 视乎mysql版本而定)在[mysqld]节点下,加入一行: lower_case_table_names=1
4、密码校验复杂度关闭 同上,在那文件里面加一条
validate_password=off