记下犯下的错误。
1、linux版mysql安装包,类似于mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz格式。
2、把软件包解压放在/usr/local/mysql目录。
tar -xvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
cp -rf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz的解压目录 /usr/local/mysql ,不要提前把mysql目录创建出来。
3、准备安装的数据目录/home/mysql/mysql。
新加一个用户
useradd mysql ; ----mysql服务在linux的专属用户
把安装包目录和数据目录的权限交给mysql。
chown mysql:mysql -R /usr/local/mysql
chown mysql:mysql -R /home/mysql
4、准备配置文件
my.cnf
放在/etc/目录下。
一部分配置文件的样子
[mysql]
socket=/tmp/mysql3306.sock
[client]
port = 3306
socket=/tmp/mysql3306.sock
这里可以加上你每次想登录的用户,这样每次登陆就不需要输密码了
user = 用户
password = 密码
[mysqld]
# basic settings #
#数据库启用时使用的用户
user = mysql
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY"
character_set_server=utf8mb4
collation_server=utf8mb4_bin
default-storage-engine=innodb
pid-file=/home/mysql3306/mysql3306/mysql.pid
socket=/home/mysql3306/mysql3306/mysql.sock
#安装目录
basedir= /usr/local/mysql
#数据存放目录
datadir=/home/mysql/mysql
tmpdir=/tmp
5、初始化
mysqld
如果想直接输命令,不用输前面的路径,就把mysql安装包下的bin目录加到坏境变量里。
export PATH=$PATH:/usr/local/mysql/bin
此设置是当前环境的,想使此设置永久生效就把这条语句加进 /etc/profile文件里,因为系统每次重启的时候都会加载此文件,还有一些其他的文件,选择其中之一就好。
然后执行source /etc/profile 重新加载此文件。
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
--initialize 和 --initialize-insecure的区别是初次登陆时root需要密码和不需要密码。密码在错误日志里面查找。
记住--defaults-file一定要放在第一位,因为它里面有很多的参数,需要先给系统。这里没有--basedir,--datadir是因为my.cnf文件里已经配置了。
6、启动服务器
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
&符号一定要带上,让它在后台运行,不然这个窗口啥都不能干了。
7、启动
mysql -u root -p 这里使用字节套登陆,省去了-h 主机
输入密码登陆
登录后修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
或者创建密码:
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';