记录centos搭建mysql遇到的坑mysql
1. 直接用centos 的yum命令进行安装,发现找不到 mysql-server,因而下载 rpm文件进行后在进行安装,具体可参考官网 https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/sql
2. mysql服务端安装成功,并从本地启动后,登录不上。数据库
正常来讲 mysql(8版本) 第一次 启动后,会在 /var/log/mysqld.log 记录一个 root 对应的临时密码 , 使用此密码经过 mysql -uroot -p"临时密码" 可登录到mysql。centos
临时密码能够经过 grep 'temporary password' /var/log/mysqld.log 这个命令查看到
若是发现 /var/log/mysqld.log 文件为空或者无密码 。 能够在 /etc/my.cnf 文件的第二行插入 skip-grant-tables ,文件内容大体以下:socket
[mysqld] #skip-grant-tables -- 这一行表示能够不输入密码直接登入 mysql #skip-networking -- 这一行表示本机运行,外部没法链接 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid # # include all files from the config directory # !includedir /etc/my.cnf.d default-character-set=utf8
这时,你已经能够登入mysql了,你还须要作的是 修改root密码,并新建普通用户,设置其可远程登录。ide
首先,设置 root 密码为空 ALTER USER 'root'@'localhost' IDENTIFIED BY ''; 或者 直接 update mysql.user set authentication_string = '' where user = 'root' and host = 'localhost';ui
接着先将 /etc/my.cnf 文件中的 skip-grant-tables 注释掉 , 并重启服务 service restart mysqld , 使用 mysql -uroot -p'' 登录mysqlspa
登录mysql后你就能够修改 root 用户的密码了,使用命令 ALTER USER 'root'@'localhost' IDENTIFIED BY 'pwd'; 设置密码 [ 这里千万不要直接 update 设置密码 ] 。.net
若是你不想设置复杂的密码,可是它一直报你的密码,你能够: SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+ 其中 validate_password.policy 常量表明的是密码等级,0是low validate_password.length 常量表明的是密码长度 经过 set global validate_password_length=1; 来设置,
密码改完了, CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 新建一个用户 ; rest
修改数据库外部可访问: update mysql.user set host = '%' where user = 'user' and host = 'host';
用户提权限: GRANT ALL ON *.* TO 'user'@'%'; 最后须要对外开放mysql监听的端口,通常为 3306
参考: