目录
三、上传mysql的tar.gz包到 /usr/local 目录下(mysql 用户操作)
四、进入 /usr/local/mysql 新建并编辑修改配置文件(mysql 用户操作)
五、进入 /usr/local/mysql 下建立my.cnf文件中涉及到的文件路径
六、进入 /usr/local/mysql 初始化配置并安装
七、检测安装是否成功,启动mysql,进入 /usr/local/mysql 执行:
八、用root用户登陆mysql 并修改mysql用户的密码,在/usr/local/mysql/bin 目录下执行:
九、用mysql 用户登陆mysql 进入/usr/local/mysql/bin目录执行
十、2022年11月更新mysql8安装过程的一次经历(非转载)
一、安装相关包
yum install libaio*
yum install numactl
yum install perl
yum install perl-devel
二、创建Linux系统用户并分配权限(root 用户操作)
创建用户组:groupadd mysql
创建用户并分配组: useradd -g mysql mysql
设置密码:passwd mysql
给用户组授权:chown -R mysql:mysql /usr/local/
三、上传mysql的tar.gz包到 /usr/local 目录下(mysql 用户操作)
解压:tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
重命名:mv mysql-5.6.43-linux-glibc2.12-x86_64 mysql
四、进入 /usr/local/mysql 新建并编辑修改配置文件(mysql 用户操作)
vi my.cnf (如果没有就新建)
添加或替换一下内容
[client]
default-character-set=utf8
socket=/usr/local/mysql/tmp/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
socket=/usr/local/mysql/tmp/mysql.sock
tmpdir=/usr/local/mysql/tmp/
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
symbolic-links=0
character_set_server=utf8
[mysqld_safe]
default-character-set=utf8
log-error=/usr/local/mysql/logs/mysqld.log
pid-file=/usr/local/mysql/run/mysqld/mysqld.pid
授权:chmod 644 my.cnf
五、进入 /usr/local/mysql 下建立my.cnf文件中涉及到的文件路径
tmp(数据库临时文件夹)
logs(日志存储文件夹)
run/mysqld(目录,存放运行mysql所需文件)
命令:
mkdir tmp
mkdir logs
mkdir -p run/mysqld
六、进入 /usr/local/mysql 初始化配置并安装
./scripts/mysql_install_db --user=mysql --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
说明:--user=mysql (表示用户名)
七、检测安装是否成功,启动mysql,进入 /usr/local/mysql 执行:
bin/mysqld_safe &
查看是否启动成功,执行:
ps -ef |grep mysql
结果如下:
八、用root用户登陆mysql 并修改mysql用户的密码,在/usr/local/mysql/bin 目录下执行:
./mysql -h127.0.0.1 -uroot
连接成功
a: use mysql
b: UPDATE user SET PASSWORD=PASSWORD('mysql') WHERE USER='mysql';
c: flush privileges;
d: 给mysql用户远程连接的权限:
grant all privileges on *.* to mysql @"%" identified by"mysql" with grant option;
九、用mysql 用户登陆mysql 进入/usr/local/mysql/bin目录执行
./mysql -h192.168.232.101 -umysql -pmysql --default-character-set=utf8
说明: -h 后面加的是ip地址 -u后面是用户名 -p 是密码 后面是字符编码
以上部分为转载内容。
实际操作环境:
centos6.9
mysql5.6
以下则是在实际安装过程中遇到的问题:
1、步骤二,如果没有建立mysql用户,则注意在my.cnf中增加user=XXX 选项
2、./mysql -h192.168.232.101 -umysql -pmysql --default-character-set=utf8 连接方式,使用mysql -umysql -p 无效原因,参考ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘_滴水可藏海的博客-CSDN博客
以上问题出现的原因则在具体分析中,分析结果后面揭晓。
发现一篇mysql8的安装文章:centos8中安装mysql8.0.21版本以及配置优化
十、2022年11月更新mysql8安装过程的一次经历(非转载)
系统:centos7.3
数据库:https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
参考博客:安装过程参考CentOS安装MySQL8详细步骤中的Linux通用包安装(适用于其它Linux操作系统安装)部分
安装过程中遇到的问题(发生问题原因,不知道为啥,我也很想知道)。
配置文件my.cnf
[client]
default-character-set=utf8
socket=/usr/local/mysql/tmp/mysql.sock
[mysql]
default-character-set=utf8
[mysqld]
socket=/usr/local/mysql/tmp/mysql.sock
tmpdir=/usr/local/mysql/tmp/
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
symbolic-links=0
character_set_server=utf8
lower_case_table_names=1
default_authentication_plugin = mysql_native_password
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
default-character-set=utf8
default-time_zone = '+8:00'
plugin_dir=/usr/local/mysql/plugin
early-plugin-load='keyring_file.so'
keyring_file_data=/var/local/mysql/mysql-keyring/keyring
innodb_file_per_table=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
1、初始化命令,提示空密码
[root@server19 mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize-insecure --lower-case-table-names=1
2022-11-10T09:43:50.608699Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2022-11-10T09:43:50.608825Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 113933
2022-11-10T09:43:50.610524Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2022-11-10T09:43:50.620690Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-11-10T09:43:50.878067Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-11-10T09:43:51.884568Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
如果空密码的情况下,可以使用mysqladmin命令,这里说明1234是你新设置的密码,可以根据需要设置自己的密码即可。如:
mysqladmin -u root -p password 1234
2、mysql启动后,mysql -uroot -p提示ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
初始化启动后直接登录不进去,大多数文章都说在配置文件my.cnf中设置
default_authentication_plugin。
[client]
...
[mysqld]
...
default_authentication_plugin = mysql_native_password
但是我试了,完全没用。并且大部分都是该方案,但是不清楚为啥没启作用,我也没深究。
只能用了一个取巧的方法,先跳过密码验证skip-grant-tables,进入服务器。再修改caching_sha2_password为mysql_native_password即可。如:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxxx';
修改完,删掉skip-grant-tables后重启即可。
未完待续!!!