mysql 篇章

mysql编译安装

里面有mysql如何安装,基础配置,一些简单的语句,只要你需要我这里都有,给新手安装减轻难度

  1. 安装依赖

   yum install gcc gcc-c++ zlib zlib-devel openssl openssl-devel pcre* glibc-devel.x86_64 libaio* -y

  1. 编译安装mysql5.7(mysql8.0安装方式一样)

   上传mysql安装包到任意目录然后解压,解压后将文件重命名到 /usr/local/mysql目录,目录位置可自定义

   tar -zxvf  mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

   mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql

  1. 创建用户和用户组(不创建mysql无法启动),并授权mysql用户的权限

   groupadd mysql

   useradd -r -g mysql mysql

   cd /usr/local/mysql  &&  chown -R mysql:mysql ./

  1. 编译安装

   ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

   编译完成后会显示root用户的初始密码,一定要先保存下来,后面会用到。

  1. 授权,并将mysql添加到服务中,设置开机自动启动

    chown -R root:root ./

chown -R mysql:mysql data

cp support-files/mysql.server /etc/init.d/mysql

chkconfig --add /etc/init.d/mysql

注:service mysql start (启动)service mysql stop(停止)service mysql start (查看状态)

  1. 将mysql命令添加到linux命令中,这样你使用下面命令时不需要进入mysql的bin目录中操作

   ln -s /usr/local/mysql/bin/mysql /usr/bin/

ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

ln -s /usr/local/mysql/bin/mysqldump /usr/bin/

  1. 修改my.cnf文件

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8mb4

[mysqld]

#server-id可以自定义

server-id=521

skip-name-resolve

# #设置3306端口

port = 3306

#mysql 二进制文件开启,二进制文件名

log-bin=mysql-bin

# # 设置mysql的安装目录

basedir=/usr/local/mysql

# # 设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql/data

# # 允许最大连接数

max_connections=300

# # 服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server = utf8mb4

# # 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

lower_case_table_names=1

max_allowed_packet=16M

#skip-grant-tables 这个配置千万别开启,开启后mysql的密码就会失效,只在忘记密码时使用

#超时时间

wait_timeout=100

interactive_timeout=100

sql_mode='NO_ENGINE_SUBSTITUTION'

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

#lower_case_table_names=1表示不区分表大小写,0表示区分表大小写,注意mysql8.0以后该值在初始化时设置有效,一旦初始化修改my.cnf也不生效还会报错。

lower_case_table_names=0

  1. 启动mysql并修改root用户密码

   service mysql start

   mysql -uroot -p 回车后输入刚才记录的密码,输入后敲回车

   这个时候操作什么都会报错,error 1820(HY000)

   执行下面的命令

    SET PASSWORD = PASSWORD('zf57wi?Kxuj!');

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

flush privileges;

提示下面信息说明成功

Mysql8.0需要执行的命令不太一样

ALTER USER 'root'@'localhost' IDENTIFIED BY 'QFkj@2019';

flush privileges;

  1. mysql基础语句,(所有操作后都需要执行flush privileges;否则不会生效)

   创建数据库命令

create database 你的数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci ;

注:数据库名如果有中划线(减号-),数据库名需要这样写 `你的数据库名`,个人不建议用中划线(减号-)。

 创建用户

      CREATE USER 'test'@'%'  IDENTIFIED BY  'test@2024';

  注:这样创建的用户任意地址都可以登陆

      CREATE USER 'test'@'192.168.0.100'  IDENTIFIED BY  'test@2024';

      注:限制源IP为192.168.0.100的客户端可以登录该用户

      CREATE USER 'test'@'192.168.0.%'  IDENTIFIED BY  'test@2024';

      注:限制源IP段为192.168.0.%的客户端可以登录该用户

      Root用户不允许外部访问,只允许localhost或限定IP访问

      GRANT ALL PRIVILEGES ON *.*  TO 'root'@'192.168.0.100' IDENTIFIED BY

'root@2024' WITH GRANT OPTION;

       授权test用户操作test数据库权限

       GRANT ALL PRIVILEGES ON  test .*  TO  'test'@'%'  WITH GRANT OPTION;

       注:该语句授权了所有权限,注意这里的test用户是所有IP都能登陆的权限,如果需要限制,参考上面的用户权限。

       授权test用户对test数据库只有查询权限

       GRANT select   ON  test .*  TO  'test'@'%' ;

  1. mysql备份数据库语句(实际情况中,无论使用任何工具导出sql文件在上传到目标服务器都十分慢,使用命令备份会很快)

   多个数据库同时备份

mysql -e "show databases;" -h 192.168.0.100 -uroot -pabc_123 | grep -Ev "Database|information_schema|mysql|performance_schema|sys" | xargs -i mysqldump -h 192.168.0.100 -uroot -pabc_123 --flush-logs --quick --events  --no-create-db --single-transaction  --databases {} > /usr/local/back/mysql_back.sql

注:grep -Ev 表示排除show databases查询出来的数据库,--no-create-db不导出创建数据库语句。

单个数据库导出

mysqldump -h 192.168.0.100 -uroot -pabc_123 --flush-logs --quick --events  --no-create-db --single-transaction  --databases test > /usr/local/back/mysql_back.sql

注:--databases后面跟数据库名

导出数据库时,不导出某个表

mysqldump -h 192.168.0.100 -uroot -pabc_123 --flush-logs --quick --events  --no-create-db --single-transaction  --databases test  --ignore-table=test.name  > /usr/local/back/mysql_back.sql

     注:--ignore-table=test.name不导出的数据库.表

     导出带有条件的单表

mysqldump  -h 192.168.0.100 -uroot -pabc_123 --databases test --skip-add-drop-table --skip-complete-insert  --extended-insert --tables name --where="id>9293740" > name.sql

      注:--where 筛选条件

       

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值