目录预览
- shell命令:
shell> yum search libaio
shell> yum install libaio
shell> mkdir /prod/db
shell> cd /prod/db
shell> wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
shell> tar -axvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
shell> mv /prod/db/mysql-5.7.27-linux-glibc2.12-x86_64 mysql
shell> cd mysql
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> ln -s /prod/db/mysql mysql
shell> mysql/bin/mysqld --user=mysql --basedir=/prod/db/mysql --datadir=/prod/db/mysql/data/ --initialize
- mysql命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit
- my.cnf配置文件
[client]
port = 3306
socket = /prod/db/mysql/mysql.sock
[mysqld]
port = 3306
basedir=/prod/db/mysql
datadir=/prod/db/mysql/data
socket=/prod/db/mysql/mysql.sock
pid-file=/prod/db/mysql/mysql.pid
explicit_defaults_for_timestamp
log_error=/prod/db/mysql/log/mysql-error.log
slow_query_log_file =/prod/db/mysql/log/mysql-slow.log
一、安装依赖
shll> yum search libaio
shll> yum install libaio
二、创建用户和组
- 创建mysql用户组
shell> groupadd mysql
- 创建mysql用户
shell> useradd -r -g mysql -s /bin/false mysql
-s /bin/false 是禁止用户登录centos系统
三、安装
- 安装包下载
shell> wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
- 解压
shell> tar -axvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
- 重命名
shell> mv /prod/db/mysql-5.7.27-linux-glibc2.12-x86_64 mysql
- 创建软连接
shell> ln -s /prod/db/mysql mysql
- 初始化mysql环境:
mysql/bin/mysqld --user=mysql --basedir=/prod/db/mysql --datadir=/prod/db/mysql/data/ --initialize
mysql软连接指向/prod/db/mysql
四、配置
-
使用临时密码登录
shell> mysql -uroot -p ‘初始密码’
-
修改密码
sql> set password=password('yourpassword');
- 设置远程登录
sql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
- 重载授权
sql> FLUSH PRIVILEGES;
五、启动与关闭
-
添加环境变量
shell> vi /etc/profile
在文件最后添加如下语句:
export MYSQL_HOME=/prod/db/mysql export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib
保存后,使环境变量生效:
shell> source /etc/profile
-
启动mysql
shell> mysqld_safe --defaults-file=/prod/db/mysql/my.cnf &
或者
shell> systemctl start mysql
可以通过ps -ef | grep mysql看到相关进程
systemctl stop|start|restart mysql 对应停止|启动|重启
六、修改密码
-
登录
shell> mysql -uroot -p ‘初始密码’
-
修改密码
sql> set password='新密码';
-
刷新更改
sql> FLUSH PRIVILEGES;
七、问题
-
问题一
shell> mysqld --initialize的时候出现了--initialize specified but the data directory has files in it. Aborting. 错误
解决方法:
a、检查my.cnf文件中datadir配置路径下,是否有data文件夹 b、检查data文件夹下是否为空,不为空则清空文件夹
-
问题二:
使用mysql -uroot -p密码,连接数据库,出现
shell> ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/prod/db/mysql/run/mysql.sock' (2)
解决方法:
shell> service mysql restart
-
问题三
安装完成后无法获取初始密码。
解决方法:
1. 在配置文件/prod/db/mysql/my.cnf中 [mysqld] 这一项下添加skip-grant-tables 这个配置,然后保存。 2. 密登录:输入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键。 3. 重置密码:
-
配置 my.cnf文件
shell> vi mysql/my.cnf
[mysqld] skip-grant-tables
-
密登录
shell> mysql -u root -p
sql> use mysql; sql> update user set authentication_string=password('新密码') where sql> user='root' and host='%'; sql> flush privileges;
说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.删除掉my.cnf中的免密设置,重启mysql即可。
-