MySql教程

mysql 5.7安装与配置

本文主要是介绍mysql 5.7安装与配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

            mysql 5.7   安装部署过程

防火墙+selinux:均已关闭

 

1. hosts文件

echo "oracle12c1 192.168.0.100" >> /etc/hosts

 

2.卸载 系统自带mysql,mariadb

rpm -qa | grep mysql

rpm -qa | grep mariadb

rpm -e --nodeps mysql*

rpm -e --nodeps mariadb*

 

3.安装,生产环境规范

mkdir -p /mysql/app

mkdir -p /mysql/data/3306

mkdir -p /mysql/log/3306

mkdir /backup

 

解压 mysql

tar -zxf mysql*.tar.gz -C /mysql/app

mv /mysql/app/mysql* /mysql/app/mysql

 

4.配置环境变量

vim     

 

PATH=$PATH:/mysql/app/mysql/bin                   # 如果路径放在$PATH后面,先使用旧的版本的MySQL,比如说在备份的时候,会用旧版本的或者系统自带的版本mysqldump备份mysql5.7,会出错,所以,要把bin路径放在前面

 

5.

[root@oracle12c1 mysql]# groupadd mysql

[root@oracle12c1 mysql]# useradd -r -g mysql -s /sbin/nologin mysql                 (-r -s 的目的 不让其作为登录用户)

[root@oracle12c1 mysql]# chown -R mysql:mysql /mysql

 

6.mysql配置文件    vim /mysql/data/3306/my.cnf

[mysql]

default-character-set=utf8

#socket=/mysql/data/3306/mysql.sock

[mysqld]

port=3306

#socker=/mysql/data/3306/mysql.sock

basedir=/mysql/app/mysql

datadir=/mysql/data/3306/data

character-set-server=utf8

 

default-storage-engine=INNODB

innodb_buffer_pool_size=200M

max_allowed_packet=16M

explicit_defaults_for_timestamp=1

log-output=FILE

general_log=0

general_log_file=/mysql/log/3306/general.err

slow_query_log=ON

slow_query_log_file=/mysql/log/3306/query.err

long_query_time=10

log-error=/mysql/log/3306/error.err

 

 

touch general.err

touch query.err

 

 

ln -sf /mysql/data/3306/my.cnf /etc/my.cnf

[root@oracle12c1 mysql]# /mysql/app/mysql/bin/mysqld --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data

有临时密码

 

 

7.安装后的设置和开机启动

 

vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/mysql/app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf

LimitNOFILE=65536

LimitNPROC=65536

 

systemctl daemon-reload

systemctl stop mysqld

systemctl start mysqld

systemctl status mysqld

systemctl enable mysqld

 

 

命令行启动和关闭:

nohup /mysql/app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

 

>/dev/null 2>&1  不显示在外面

nohup /mysql/app/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf >/dev/null 2>&1 &

 

mysqladmin -uroot -p shutdown

 

###############

 

>/dev/null 2>&1              正确,错误 日志全部 不输出

2>&1 >/dev/null              正确的不输出屏幕,错误的输出到屏幕

 

启动脚本

/mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --user=mysql 2>&1 >/dev/null   &   

 

################

 

8.进入数据库

[root@oracle12c1 bin]# mysql -u root -p

 

拿密码   cat /mysql/log/3306/error.err | grep "password"        按行输出

 

 

 

 

### 改密码

mysql> alter user 'root'@'localhost' IDENTIFIED by 'root';        这里的localhost是本地ip的表示方式

mysql> use mysql

mysql> select host,user from user where user='root';

####开启远程登录

mysql> create USER 'root'@'%' IDENTIFIED by 'root';    %是所有的ip

mysql> grant all privileges on *.* to 'root'@'%' with grant option;  修改所有权限,到所有的数据库的所有的表 到root 并设置管理员

####测试 可不可以远程登陆

mysql> select host,user from user where user='root';

[root@oracle12c1 bin]# mysql -u root -p -horacle12c1          -h远程登录 hostname 或者 IP地址

mysql> show databases;

 

[root@oracle12c1 bin]# systemctl stop firewalld

[root@oracle12c1 bin]# systemctl disable firewalld

 

9.创建数据库,建表  

[root@oracle12c1 bin]# mysql -uroot -p

mysql> create database testdb default charset utf8mb4;      

mysql> create user 'test'@'%' identified by 'test';

mysql> select host,user from mysql.user;

 

授权本地登录和远程登陆

mysql> grant all privileges on testdb.* to 'test'@'localhost' identified by 'test';

mysql> grant all privileges on testdb.* to 'test'@'%' identified by 'test';         

 

 

mysql> use testdb

 

mysql> create table test01(

     id int auto_increment primary key,

     name varchar(15)

     )engine=InnoDB;

 

insert into test01 values (1,'zhang');

insert into test01 values (2,'liu');

 

 

mysql> select * from test01;

+----+-------+

| id | name  |

+----+-------+

|  1 | zhang |

|  2 | liu   |

+----+-------+

2 rows in set (0.00 sec)

 

mysql> commit;

 

 

 

 

 

 

 

这篇关于mysql 5.7安装与配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!