Linux-mysql安装以及常用sql

一、下载mysql二进制安装包

mysql官网:mysql安装包下载地址

1、进入mysql官网,选择下载

2、点击MySQL Community Server ,根据操作系统,选择mysql安装包

也可以选择其它版本

3、点击download,提示注册登录,只选择下载就OK了

二、安装准备

1、JDK为1.8以上:java -version

2、上传mysql安装包到直接目录

3、在同一目录下,创建目录:bin、conf、data、logs

mkdir -p logs bin conf data/{secdata,perdata,pertmp}

4、在conf下创建文本per.cnf,内容:

[mysqld]
basedir=/home/Tiger/soft/mysql/mysql-5.6.41
datadir=/home/Tiger/soft/mysql/data/perdata
port=33306
socket=/home/Tiger/soft/mysql/logs/per.sock
log_timestamps=SYSTEM
sql_mode='NO_ENGINE_SUBSTITUTION'
slave_pending_jobs_size_max=1167772160
character_set_server = utf8
innodb_buffer_pool_size=10G
#innodb_buffer_pool_instances=40
innodb_buffer_pool_instances=10
innodb_page_cleaners=20
innodb_log_buffer_size=32M
tmpdir='/tmp:/home/Tiger/soft/mysql/data/pertmp'
innodb_io_capacity=100
thread_handling="pool-of-threads"
thread_pool_size=64
innodb_online_alter_log_max_size=5368709120
thread_cache_size=1000
innodb_log_file_size = 500M
table_open_cache=10000
table_open_cache_instances=10
max_connections=400
max_connect_errors=100000
interactive_timeout=300
wait_timeout=300
performance_schema=off
#early-plugin-load=keyring_file.so
early-plugin-load=""
#keyring_file_data=/home/jfshop/mysql/Percona-Server-5.7.11-4/keyring
secure-file-priv=/home/Tiger/soft/mysql/data/secdata
#user=uac
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#for application
innodb_flush_log_at_trx_commit=2
lower_case_table_names=1
log_bin_trust_function_creators=1
event_scheduler=1
slow_query_log=1
long_query_time=3
log_output='TABLE,FILE'
innodb_read_io_threads=4
innodb_write_io_threads=4
slow_query_log_file=/home/Tiger/soft/mysql/logs/slowquery.log
expire_logs_days=7
#for log warnings
skip-host-cache
skip-name-resolve
explicit_defaults_for_timestamp
#for replication
#slave_skip_errors='1007,1008,1050,1051,1054,1060,1061,1068,1091,1146,1507,1517'
#slave_skip_errors=ddl_exist_errors
#slave_skip_errors=1062
server-id = 53
log-bin = /home/Tiger/soft/mysql/data/perdata/mysql-bin
relay-log=mysqld-relay-bin
#binlog_format=mixed
binlog_format=row
sync_binlog=100
auto-increment-increment = 1
auto-increment-offset = 1
#rpl_semi_sync_master_enabled = 1
#rpl_semi_sync_master_timeout = 1000
#rpl_semi_sync_slave_enabled = 1
slave_parallel_type=LOGICAL_CLOCK
#gtid-mode=on
#enforce-gtid-consistency=true
#skip-slave-start
sync-master-info=1
slave_parallel_workers=16
relay_log_recovery=ON
master_info_repository=TABLE
relay_log_info_repository=TABLE
[mysqld_safe]
log-error=/home/Tiger/soft/mysql/logs/percona.log
pid-file=/home/Tiger/soft/mysql/logs/percona.pid

PS:basedir、datadir、socket、tmpdir、slow_query_log_file、log-error、pid-file,这几个文件的目录一定要根据自己创建目录而定。

5、初始化mysql,basedir是mysql安装包的路径,datadir是存放数据的目录,初始化命令执行成功时,会在最后一行显示mysql root用户的初始密码,如下面字样:[Note] A temporary password is generated for root@ localhost: Bi4JnbphX0.t

bin/mysqld --initialize --basedir=/home/Tiger/soft/mysql/mysql-5.7.23 --datadir=/home/Tiger/soft/mysql/data/perdata

PS:如果初始化之后,忘记了密码,那就把data和logs目录下初始化生成的文件和目录干掉,再来一次。

6、启动mysql,查看日志

nohup  bin/mysqld_safe --defaults-file=… --ledir=… > /dev/null &
defaults-file指定mysql配置文件,如/app/soft/conf/per.cnf
ledir指定mysql的bin目录

7、将mysql bin目录添加到环境变量,不然每次进入mysql都需要先进入mysql安装包的bin目录下

添加之后,需要source一下

三、进入mysql,修改密码,创建用户

bin/mysql -u root -p 

1、第一次进入mysql,必须修改root用户的密码

alter user user()  identified by 'Tiger'; 
alter user 'root'@'%' identified by 'Tiger'; 

上面两条sql,版本不一样,修改root密码的sql也不一样

2、创建新用户

create user 'tiger'@'%' identified by 'tiger';

3、创建新库

create database tiger_base DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

4、给新用户赋权

grant all privileges on tiger_base.* to 'tiger'@'%';

5、刷新

flush privileges;

四、安装过程中遇到的问题

1、[ERROR] bin/mysqld: unknown option '--initialize'

解决方法:5.6+版本的mysql没有这个属性,换成5.7+版本的就可以了

2、执行bin/mysql -u root -p时,找不到这个文件:/tmp/mysql.sock

解决方法:ln -s /home/Tiger/soft/mysql/logs/per.sock /tmp/mysql.sock ,创建软连接,再次执行就OK了

五、mysql其它常用sql

#2、创建唯一索引,作用和主键一样
CREATE UNIQUE INDEX 索引名 ON 表名 (字段名,字段名); 
CREATE UNIQUE INDEX index_user_daily_checkin2 ON user_daily_checkin (user_id,checkin_date); 

#3、创建普通索引
ALTER  TABLE  表名  ADD  INDEX 索引名 (user_id,info_type);
ALTER  TABLE  user_message  ADD  INDEX index_user_message (user_id,info_type);

#4、删除索引
DROP INDEX 索引名 ON 表名 ;

#5、mysql date类型的日期转字符串
SELECT COUNT(1) FROM USER WHERE DATE_FORMAT(dt_create,'%Y-%m-%d') = '2018-08-22';
#6、字符串转date类型
SELECT STR_TO_DATE('2016-01-02', '%Y-%m-%d %H') FROM DUAL;  

#7、betweeen and 包含边界值,相当于>= <=

#8、获取当前时间,格式:yyyy-MM-dd
select curdate() from dual 

#9、获取本月第一天
select DATE_ADD(curdate(),interval -day(curdate())+1 day) from dual;

#10、获取本月天数
SELECT DAY(LAST_DAY(CURDATE())) FROM DUAL;

#11、获取当月最后一天日期
SELECT LAST_DAY(CURDATE()) FROM DUAL;

#12、获取当前到月初的天数
SELECT DAY(CURDATE()) FROM DUAL;

#13、字符串截取,left,从左边截取几个字符
select left('wyyydhh',2) from dual;

#14、从右边截取,right
SELECT RIGHT('wyyydhh',2) FROM DUAL;

#15、字符串截取:substring(str, pos),从第几个字符开始往后全部截取,并返回
SELECT SUBSTRING('wyyyddfff',3) FROM DUAL; 

#16、从字符串的第 n个字符位置开始取,只取 m个字符。
SELECT SUBSTRING('wabyddfff',3,2) FROM DUAL;

#17、从字符串的第 n个字符位置(倒数)开始取,直到结束。  
SELECT SUBSTRING('wyyydhh',-2) FROM DUAL;

#18、从字符串的第 n个字符位置(倒数)开始取,只取 m个字符。  
select substring('sqlstudy.com', -4, 2) from dual;

#19、如果在字符串中找不到 delim 参数指定的值,就返回整个字符串  
SELECT SUBSTRING_INDEX('sqlstudy.com', '.', 1) FROM DUAL;

#20 mysql命名规范

1、数据库名:与系统名相同

2、表名:系统名称缩写+_+表名。表名必须描述该表的用途,由单个或多个名词组成,首字母小写,后续单词首字母大写。

3、字段名:字段名必须描述该字段的用途,由单个或多个名词组成,首字母小写,后续单词首字母大写。这里跟其他地方的规范不太一样。阿里规范中要求必须使用下划线的格式,主要考虑某些环境mysql不区分大小写,有些环境区分大小写。其实只要查询时区分大小写就没有问题了,但如果使用下划线的命名方式,在字段映射的时候会非常麻烦。

4、主键字段:表名+Id

5、外键字段:与主表主键字段完全一样

6、主键:pk_+表名

7、外键:fk_+从表名+_+主表名

8、视图:view_+名名称

9、存储过程:prcd_+名称

10、函数:fun_+名称

11、触发器:trg_+名称

12、索引:idx_+名称

#21、查看mysql的版本号
SHOW VARIABLES WHERE Variable_name = 'version';

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕少༒江湖

给我一份鼓励!谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值