https://dev.mysql.com/downloads/repo/yum/
下载mysql
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
安装mysql
yum install mysql mysql-server
启动mysql
sudo systemctl start mysqld
检查mysql状态
sudo systemctl status mysqld
有红框的时间就是状态正常
查看临时密码
sudo grep ‘temporary password’ /var/log/mysqld.log
sudo grep ‘temporary password’ mysqld.log
配置mysql
sudo mysql_secure_installation
========================================================================================================================
https://dev.mysql.com/downloads/mysql/
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
tar -Jxf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql
mysql官网下载的有很多版本,以前的tar, 现在的xz,需要注意的是有的解压出来是直接可用的,有的则只有cmake文件,则需要编译之后再进行使用,具体的编译过程可以在百度搜索。
创建mysql用户
groupadd mysql
useradd -g mysql mysql
或
useradd -s /sbin/nologin mysql -M
赋予/usr/local下面的mysql文件夹权限
chown -R mysql:mysql /usr/local/mysql
或
chown -R mysql.mysql /usr/local/mysql
将读写权限赋值给/usr/local/mysql文件夹
chmod -R 755 /data/mysql /usr/local/mysql
移动到根目录下的data文件夹,在其下创建/data/mysql/data ,将数据保存到/data/mysql/data 目录下
新建一个文件夹存储数据、并授权
mkdir data
cd /data
mkdir mysql
cd mysql
mkdir data
cd data
pwd
或
mkdir -p /data/mysql/data
chown -R mysql.mysql /data/mysql/data
修改/data/mysql 的权限给mysql用户
chown -R mysql:mysql /data/mysql
chmod -R 775 /data/mysql/data
将读写权限赋值给/data/mysql文件夹
chmod -R 775 /data/mysql
编辑my.cnf文件,这里本是linux服务器上面没有这个文件vim编辑的时候回自动创建
vim /etc/my.cnf
[mysqld] skip-name-resolve #设置3306端口 #port=3306 port=3306 user=mysql #设置mysql的安装目录 basedir=/usr/local/mysql #设置mysql数据库的数据的存放目录 datadir=/data/mysql/data #允许最大连接数 max_connections=200 #允许连接失败的次数。 max_connect_errors=10 #服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 collation-server = utf8mb4_general_ci #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #默认使用“mysql_native_password”插件认证 #mysql_native_password #default_authentication_plugin=mysql_native_password lower_case_table_names=1 max_allowed_packet=16M socket=/data/mysql/mysql.sock log-error=/data/mysql/error.log pid-file=/data/mysql/mysql.pid transaction_isolation = READ-COMMITTED #sql_mode = “STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO” [mysql] #设置mysql客户端默认字符集 default-character-set=utf8mb4 [client] #设置mysql客户端连接服务端时默认使用的端口 port=3306 socket=/data/mysql/mysql.sock default-character-set=utf8mb4
sql_mode在5.7有 NO_AUTO_CREATE_USER,但在8.0以后已经取消了
初始化
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql
启动mysql
./support-files/mysql.server start
配置 service mysql start启动
查看init.d 下是否有mysql(关键就是将我们解压的mysqld复制黏贴到init.d下面)
查看指定文件夹下是否有mysql
ll /etc/init.d/ | grep mysql
查找自己安装的mysql.server文件
find / -name mysql.server
因为我们刚才安装 /usr/local/mysql目录下,所以可以直接使用下面这句
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后就可以在任意地方运行service mysql restart 啦
设置开机启动 在/etc/init.d文件夹下操作
cd /etc/init.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart
开机后通过 service mysql status 来判断mysql是否运行中
重启服务
source /etc/profile
进入mysql
查看默认密码
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
查看用户权限
select host,user from mysql.user;
授权以及设置账户可以远程连接
use mysql
update user set host='%' where user='root';
grant all privileges on *.* to 'root'@'%';
flush privileges;
quit
grant 授权
all 所有权限
. 表示针对 库.表 的权限,这里表示对所有库,所有表都授权
root 表示用户名
%表示全网 localhost表示内网允许
在 my.cnf 的mysqld 下增加
default_authentication_plugin=mysql_native_password
进入mysql命令行
mysql -uroot -p
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; FLUSH PRIVILEGES;
到这里所有mysql的设置都已经完成了,接下来是防火墙相关,如果你不想关闭防火墙,可以选择开放3306端口
修改相关文件
yum -y install iptables-services
$vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
$systemctl restart iptables.service #重启防火墙使配置生效
这里我选择的是直接关闭防火墙…
$systemctl stop firewalld.service #停止firewall
$systemctl disable firewalld.service #禁止firewall开机启动