728x90

mysql를 사용하면 문자열을 합쳐야 할 경우가 생기기 마련입니다.

그래서 이번에는 문자열 합치기에 대해 알아보도록 하겠습니다.


함수에는 CONCATCONCAT_WS가 있습니다.


1. CONCAT

mysql> SELECT CONCT(str1, str2, ...);


ex) SELECT CONCT('My', 'sql');

> 'Mysql'


ex) SELECT CONCT('My', 'sql', '123');

> 'Mysql123'


ex) SELECT CONCT('My', 'sql', 'NULL');

> 'NULL'

-> NULL이 나오는 경우는 문자열 합치는 값안에 NULL이 들어가 있으면, 무조건 NULL만 나오게 됩니다.


2. CONCAT_WS

mysql> SELECT CONCAT_WS(sepator, str1, str2, ...);


ex) SELECT CONCAT_WS(',', 'My',  'sql');

> My, sql


ex) SELECT CONCT_WS(',', 'My', 'sql', 'NULL');

> My, sql

-> CONCAT처럼 NULL을 넣었지만, CONCT_WS에서는 NULL을 빼고 반환합니다.



728x90
728x90

오류 원인

mysql을 설치 할 때 입력한 비밀번호가 암호화되서 저장이 된 것이 문제가 되었습니다.


오류 내용

mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in


해결 방법

예전의 암호화방식으로 변경하여 저장해주면 해결 됩니다.


로컬로 접속 할 경우!!

ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';

외부에서 접속 할 경우!!

ALTER USER 'mysqlUsername'@'%' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';

mysqlUsername : root
mysqlUsernamePassword : mysql 비밀번호



Query OK, 0 rows affected 라고 나오면 성공!!!

그 후, 아파치와 php 재실행 해주시면 됩니다.






참고 사이트!!!

https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-plugin-caching_sha2_password/

https://stackoverflow.com/questions/50026939/php-mysqli-connect-authentication-method-unknown-to-the-client-caching-sha2-pa/50776838

728x90

+ Recent posts