mysql-5.7.23-linux-glibc2.12-x86_64安装
安装环境Centos7_X64
3、切换目录(自定义)
#> cd /usr/local
解压(mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz已经复制到/usr/local下)
#> tar zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
5、创建软链接
#> ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
7、进入mysql目录
#> cd mysql
8、创建配置文件my.cnf,复制到/etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
port=3306
basedir=/home/zhuge/mysql/mysql
datadir=/home/zhuge/mysql/mysql/data
max_connections=200
character-set-server=utf8
#default-storge-engine=INNODB
*********重要*********
初始化MySQL命令
mysqld --initialize
提示信息:
------------
2019-02-19T17:18:04.522416Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more deta ils).
2019-02-19T17:18:04.883839Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-02-19T17:18:05.280408Z 0 [Warning] InnoDB: Creating foreign key constraint system table s.
2019-02-19T17:18:05.499917Z 0 [Warning] No existing UUID has been found, so we assume that t his is the first time that this server has been started. Generating a new UUID: 51cbcad3-346 a-11e9-bd80-000c29e5966e.
2019-02-19T17:18:05.502372Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gti d_executed' cannot be opened.
2019-02-19T17:18:05.505574Z 1 [Note] A temporary password is generated for root@localhost: I U4C>6,=pPTR (最后这个就是自动生成的密码)
------------
*********重要*********
9、添加mysql的环境变量,修改 ~/.bashrc 或者 /etc/profile
export MYSQL_HOME=/home/zhuge/mysql/mysql
export PATH=$MYSQL_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH
9 复制启动脚本 cp support-files/mysql.server /etc/init.d/mysqld
10、修改sudo vi /etc/init.d/mysqld文件
设置basedir=${你的mysql目录} datadir=${你的mysql目录}/data
设置mysqld_safe --user=zhuge
11、service mysqld start 启动mysql服务
12 登录mysql
[root@localhost mysql]# mysql -S /opt/mysql/mysql.sock -uroot -p
Enter password:输入你的密码(IU4C>6,=pPTR)
13 修改密码
step 1: SET PASSWORD = PASSWORD('root');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
重启登录即可
如果出现如下异常
[root@localhost ~]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
则在my.cnf中添加如下配置
[mysql]
socket=/opt/mysql/mysql.sock # 指定sock地址
-----------
这样客户端在登录时就会去指定的目录查找mysqld.socket文件,注意client的socket要和mysqld是一样的,因为客户端和服务端通信靠的就是这个文件,肯定要一致。
授权远程访问:
SELECT PASSWORD('root'); ##获取加密密码 ,放在授权语句PASSWORD后
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.25.%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION; #授权语句
FLUSH PRIVILEGES; #刷新命令
##########其他##########
忘记密码的解决方案
9、使用命令bin/mysqld_safe --skip-grant-tables 跳过密码验证启动服务,直接使用 mysql -uroot 登录mysql,使用下面命令修改密码
update mysql.user set authentication_string=password(“root”), password_expired=‘N’ where user=‘root’;
刷新
flush privileges;
10、再次bin/mysqld_safe --user=zhuge 正常启动,使用命令登录mysql -uroot -p,提示输入设置的密码即可正常登录
11、后台启动 (暂时不用)
bin/mysqld 1>/dev/null 2>&1 &
11、复制配置文件
#> cp support-files/my-medium.cnf /etc/my.cnf
#> cp support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld #修改这个文件的内容
may be overwritten at next upgrade.
$bindir/mysqld_safe --user=root … # --user=root是新加上的
12、启动数据库
#> /etc/init.d/mysqld start
13、查看是否有3306端口启动
#> netstat -nat
14、设置密码
#> mysqladmin -u root password ‘root’
授权命令(所有远程都可访问)
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
flush PRIVILEGES; #刷新授权