前段时间安装MYSQL花费了些时间,就记录下来作为第一篇博客吧 。
1、使用root用户创建mysql用户和组,创建/usr/local/mysql 目录,创建/var/log/mariadb 目录并将目录所有者变为mysql用户
2、解压mysql 安装包并将解压后的内容移动到 /usr/local/mysql 目录
mv mysql-5.7.26-linux-glibc2.12-x86_64/* /usr/local/mysql
3、在/usr/local/mysql 目录下创建data 目录和 etc 目录,将/usr/local/mysql 目录所有者变为mysql用户
4、切换mysql用户 在/usr/local/mysql/bin 目录下执行安装命令
./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
5、在/usr/local/mysql/etc 目录下创建my.cnf文件,填写如下值
[client]
port=3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
port=3306
socket=/usr/local/mysql/mysql.sock
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/mysql.pid
log_error=/usr/local/mysql/error.log
server-id=100
skip-grant-tables
6、切换root用户 复制mysql.server 文件到 /etc/init.d/mysql ,修改所有者为mysql
cp mysql.server /etc/init.d/mysql
chown mysql:mysql /etc/init.d/mysql
7、切换mysql 用户 执行service mysql start 命令,password 输入提示用户密码,本次 admin用户密码为admin
8、/usr/local/mysql/bin 目录下执行命令 ./mysql -u root ,修改密码
update mysql.user set authentication_string=PASSWORD('123456') where User='root';
flush privileges;
9、删除my.cnf文件 最后一行的免密登陆,并重启服务
Service mysql restart
10、./mysql -u root -p123456 登陆并再次修改密码(这次在mysql命令行中),创建普通用户
Alter user USER() IDENTIFIED BY '123456';
Create user 'abc'@'%' identified by '123456';
11、将/usr/local/mysql/bin 添加进用户变量
常见错误:
一、can't open the mysql.plugin table
不要使用mysqld安装,应该使用mysql_install_db
二、Unit not found
检查/etc/init.d/mysql 文件是否创建,权限是否正确
三、远程无法连接mysql库root用户
root用户需要指定IP登陆,也可修改为全IP登陆,不过最好创建一个普通用户连接,ip段可以使用%代表全ip允许连接。
Create user 'abc'@'%' identified by '123456';
四、Can't connect to local MySQL server through socket '/usr/local/mysql/mysql.sock' (2)
说明service未启动
五、服务器重启后原来建的数据库无法连接
可能是库名中包含大写字符,
使用mysql -uroot -p123456 登陆数据库,执行shutdown 命令,修改my.cnf 文件 将
lower_case_table_names=1 修改为 0 后 重启 service mysql start 解决