유돌이

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

2019. 10. 23. 11:08 유닉스*리눅스*SE

1. 원인 : mysql 테이블이 깨진 경우 발생하는 에러 이다.

 

2. 해결 방법 : 아래와 같이 복구를 해주면 된다.

 

[방법1]

# mysqlcheck --repair aaa bb_cccc -u 계정 -p

[방법2]

# mysql -u root -p

mysql > use database-name;

ysql> check table table-name;

mysql> repair table table-name;

mysql > exit;

[방법3]

phpmyadmin 을 사용한다면 웹에서 오류수정이 가능하다.

posted by 유돌이
2019. 10. 23. 11:08 유닉스*리눅스*SE

1. php-mysqlnd 설치가능 여부확인
yum list php-mysqlnd

2. php-mysqlnd 설치
yum install php-mysqlnd

3. php-mysqlnd 설치 php-mysql에러발생하면..
yum remove php-mysql 명령어로 해당 내역 삭제

4. php-mysqlnd 다시설치

5. service php-fpm restart

posted by 유돌이
2019. 10. 15. 10:20 유닉스*리눅스*SE

================================================================================
[방법1]
1. mysql 중지
sudo /etc/init.d/mysql stop

2. 안전모드진입
sudo mysqld_safe --skip-grant-tables &

3. root로그인 및 비번재설정

mysql -uroot
use mysql;
update user set password=PASSWORD("YOURPASSWORDHERE") where User='root';
flush privileges;
quit

4. mysql 재시작
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

5. root 로그인
mysql -u root -p (루트로그인)

================================================================================
[방법2]
1. mysql 중지
service mysqld stop


2. 안전모드 진입
/usr/bin/mysqld_safe --skip-grant-tables &


3. mysql 접속및 root 비번 재설정

/usr/bin/mysql -uroot mysql

# 5.7 버전 미만
UPDATE mysql.user SET password=PASSWORD('패스워드') WHERE user='root';
FLUSH PRIVILEGES;
quit

# 5.7 버전 이상
UPDATE mysql.user SET authentication_string=PASSWORD('패스워드') WHERE user='root';
FLUSH PRIVILEGES;
quit


4. service mysqld restart


5. root 로그인
mysql -u root -p (루트로그인)

================================================================================
[위와 같이 했으나 안될경우]
1. sevice mysql reload 한후 다시 로그인 실행

posted by 유돌이
2019. 10. 15. 10:20 유닉스*리눅스*SE

[DB 최대접속자 설정확인]

show variables like '%max_connection%';

 

[DB 최대접속자 변경]

set global max_connections=500;

 

[DB접속 종료전까지 요청이 없이 기다리는 시간확인]

show variables like 'wait_timeout';

 

[DB접속 기다리는시간수정]

set wait_timeout=60;

 

[DB접속 상태확인]
SHOW STATUS LIKE '%connect%'

posted by 유돌이
2019. 10. 15. 10:20 유닉스*리눅스*SE

​[mysql 프로세스 리스트 보기]

SHOW PROCESSLIST;

 

time이 수치가 높은 녀석은 DB커녁션이 정상적으로 안되는 부분입니다.

불필한 하다고 생각되면 KILL 명령어로 죽이는 맞습니다.

=> kill 'id'

ex)

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

| Id | User   | Host         | db      | Command | Time | State | Info        

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

|  5 | root   | localhost    | STARPL3 | Query   | 2048 | init  | INSERT INTO ...

| 13 | root   | localhost    | NULL    | Query   |    0 | NULL  | show processlist

| 14 | lapoly | Canopus:3750 | STARPL3 | Sleep   |  160 |       | NULL        

| 15 | lapoly | Canopus:3751 | NULL    | Sleep   |  386 |       | NULL        

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

 

posted by 유돌이
2019. 10. 11. 10:27 유닉스*리눅스*SE

1. mysql 접속

   mysql -u root -p

   패스워드 입력

 

2. use mysql

 

3. update user set password=password('암호') where user = '계정명';

 

4. flush privileges;

posted by 유돌이
2019. 10. 11. 10:27 유닉스*리눅스*SE

select max(length('필드명')) from '테이블명'

posted by 유돌이
2019. 10. 11. 10:26 유닉스*리눅스*SE

1. 계정생성

   use mysql;

   -------------------------------------------------------------------------

   create user 사용자ID; //사용자 추가

   create user 'userid'@localhost identified by '비밀번호'; //사용자 &비밀번호 추가

   create user 'userid'@'%' identified by '비밀번호'; //외부 접속 허용

   -------------------------------------------------------------------------

​2. 권한설정

  - user 권한 부여
  grant select, insert, update, delete, create, drop, alter on 지정DB이름.*to '아이디'@'localhost';
(all privileges : 모든 권한 / *.* : 모든DB / with grant option : 권한위임가능)

 

  - user 권한 보기
  show grants for '아이디'@'localhost(또는%)';


  - 권한 적용
  flush privileges;
 

3. 계정삭제

   drop user 'userid'@localhost;

 

 

4.  한번에 하기

use mysql;

 

INSERT INTO user (host, user, password) VALUES ('localhost', 'ID', password('pw'));

 

INSERT INTO db (Host, Db, User, Select_priv, Insert_priv,Update_priv, Delete_priv, Create_priv, Drop_priv)VALUES('localhost','id','id', 'Y', 'Y', 'Y', 'Y','Y','Y');

 

GRANT ALL on db.* TO 'id';  

 

GRANT ALL on db.* TO 'id'@'localhost';      

 

update user set password=password("pw") where User="id";

 

 

flush privileges;

'유닉스*리눅스*SE' 카테고리의 다른 글

[mysql] 계정 비밀번호 변경  (0) 2019.10.11
[MYSQL] 필드 최대길이 구하기  (0) 2019.10.11
[mysql] slow query log 설정  (0) 2019.10.11
[GIT] branch 이름 변경하기  (0) 2019.10.07
[git] git 명령어 관련  (0) 2019.10.07
posted by 유돌이
2019. 10. 11. 10:26 유닉스*리눅스*SE

slow_query_log=1

=> 슬로우쿼리는 남기도록 하는 설정 입니다. (1 :  enable, 0 : disable)

 

log_query_time=2

=> 단위는 초단위이며, 쿼리가 2초이상 걸린 경우 로그로 남갑니다. 기본은 10초입니다.

 

log_slow_queries=var/log/mysql_slow.log

=> 슬로우쿼리가 저장될 공간을 설정합니다.

 

slow_qurey_log=on

=> 슬로우쿼리 설정유무를 나타냅니다. (on/off)

 

long_query_time=5.000000

=> 슬로우쿼리 구분기준(5초로설정) 입니다. 설정하지 않으면 기본값 10초로 동작합니다.

 

해당 내용을 수정후 mysql 재시작하면 적용됩니다.

( service mysql restart )

 

=========================================================================================
[로그 보는법]

  Query_time : 7.359190
  쿼리가 실행된 시간입니다. 2초 이상으로 설정했으므로 7.3초가 걸린 쿼리가 로그에 남아있습니다. 시스템에 따라 쿼리 내용에 따라 해당 시간이 오래 걸린다고 판단할 수도 있고 아닐 수도 있습니다. 시스템 성격이나 쿼리 성격에 비추어 해당 쿼리를 판단하면 됩니다.

 

  Lock_time : 0.000054
  쿼리가 실행되지 못하고 lock되어 있는 시간을 나타냅니다. 쿼리 실행 시간 중 상당 부분이 lock 시간인 경우 쿼리 자체의 문제보다 구조적인 문제에 초점을 맞춰야 합니다. lock이 걸리는 원인을 찾아 제거하면 쿼리 속도를 올릴 수 있습니다.

 

  select count(*) from Table_a;
  실제로 오래 걸린 쿼리문입니다. 해당 쿼리문에 문제가 있는지 점검하여 개선할 수 있습니다. 쿼리 개선은 쿼리 자체의 문법 수정도 있겠지만 테이블 스키마 변경, DBMS 설정 변경 등에 의해서 수행될 수 있습니다. 쿼리 개선의 경우는 상당히 많은 내용이 있으므로 따로 작성할 필요가 있습니다.

posted by 유돌이
2019. 10. 7. 18:16 유닉스*리눅스*SE

git branch -m 변경전_branch_name 새로운_branch_name

posted by 유돌이
prev 1 2 3 4 next