一 、使用yum 进行安装1、添加MySQL官方的仓库。这可以通过下载MySQL官方提供的仓库配置包来完成。执行以下命令下载并安装仓库配置包sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm2、安装MySQL服务器sudo yum install mysql-community-server3、启动MySQL服务sudo systemctl start mysqld4、查看MySQL服务的状态sudo systemctl status mysqld5、安全设置MySQL。运行mysql_secure_installation脚本来设置root用户密码移除匿名用户禁止root远程登录等sudo mysql_secure_installation6、登录到MySQL数据库确认安装是否成功mysql -u root -p二、使用安装包进行安装1、下载mysql安装包都要https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.37-linux-glibc2.12-x86_64.tar.xzmysql-8.0.37-linux-glibc2.12-x86_64.tar.xz2、执行安装都要## 解压缩文件并移动到指定目录 tar -xvJf mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz 或 tar -zxvf mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz ## 复制到 /usr/local目录 或是移到指定目录mv mysql-5.7.10-linux-glibc2.5-x86_64 /home/mysql/mysql-5.7.10 cp -r mysql-8.0.37-linux-glibc2.12-x86_64 /usr/local/ cd /usr/local/ mv mysql-8.0.37-linux-glibc2.12-x86_64 mysql ##安装运行mysql所需的包 mysql 5 版本需要 yum search libaio yum install libaio ## 安装及配置mysql参照mysql文件中的INSTALL-BINARY; groupadd mysql #添加一个mysql用户组 # useradd -r -g mysql -s /bin/false mysql #设置-s /bin/false表示mysql不能作为登入用户 useradd -g mysql -s /sbin/nologin mysql ## 未安装在local目录下需要在/usr/local/目录下创建一个mysql链接 cd /usr/local ln -s /home/mysql/mysql-5.7.10 mysql chown -R mysql.mysql /usr/local/mysql #作为存放数据的目录 cd mysql mkdir data chmod 770 data #修改data目录的进入权限 #mkdir /data #cd /data mkdir -p /data/{mysqldata,mysqllog,mysqltmp} chown -R mysql.mysql /data/{mysqldata,mysqllog,mysqltmp} chown -R mysql:mysql . #修改当前文件夹的用户权限和组权限 # MySQL 5.7.10初始化设置 bin/mysqld --initialize --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql/data #执行该命令后注意最后一行的[Note]信息 # [Note] A temporary password is generated for rootlocalhost: )9AsdF(86h49 生成的初始密码在首次以root用户登入时使用; # MySQL 5.7.10安全连接设置 bin/mysql_ssl_rsa_setup --basedir/usr/local/mysql --datadir/usr/local/mysql/data chown -R root . chown -R mysql data cd /var/log mkdir mysql #作为存放数据库运行日志的文件夹 cd /usr/local/mysql/ #此命令在后台运行 bin/mysqld_safe --usermysql --basedir/usr/local/mysql--datadir/usr/local/mysql/data #将mysql加入到可控制启动服务的文件夹内并命名mysql即service可控制的服务名届时可用service mysql start|stop控制启动及关闭mysql cp support-files/mysql.server /etc/init.d/mysql3、在/data目录创建my.cnf文件写入以下内容都要除server-id以外其他都先不动server-id需要每台机器不一样[mysqld] datadir/data/mysqldata/ secure-file-priv/data/mysqltmp tmpdir/data/mysqltmp log-error/data/mysqllog/mysqld.log pid-file/usr/local/mysql/mysqld.pid socket/usr/local/mysql/mysql.sock #read_only 1 log_timestamps SYSTEM slow_query_log1 long_query_time5 sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES explicit_defaults_for_timestamp skip-name-resolve skip-character-set-client-handshake skip-host-cache skip-external-locking skip-slave-start innodb_buffer_pool_size 10240M innodb_sort_buffer_size 2048M innodb_read_io_threads 4 innodb_write_io_threads 4 innodb_thread_concurrency 16 innodb_flush_log_at_trx_commit 2 innodb_log_buffer_size 64M innodb_log_file_size 128M innodb_log_files_in_group 4 #innodb_lock_wait_timeout 200 #innodb_flush_methodO_DIRECT innodb_adaptive_flushingON innodb_max_dirty_pages_pct80 innodb_io_capacity1000 lower_case_table_names1 wait_timeout28800 interactive_timeout28800 character-set-serverutf8 collation-serverutf8_general_ci log-bin-trust-function-creators1 max_connections1024 max_allowed_packet512M back_log500 event_scheduleron innodb_temp_data_file_path ibtmp1:12M:autoextend:max:10G # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links0 server-id1 gtid_modeON enforce_gtid_consistencyTRUE log-binmysql-bin-A binlog-ignore-dbmysql binlog-ignore-dbinformation_schema binlog-ignore-dbperformance_schema binlog-ignore-dbsys #log-slave-updates sync_binlog1 auto_increment_offset1 auto_increment_increment1 expire_logs_days4 binlog_formatrow slave_parallel_typeLOGICAL_CLOCK slave_parallel_workers4 master_info_repository TABLE relay_log_info_repository TABLE #federated #slave-skip-errors1061,1062,1305,1032 [mysqldump] quick max_allowed_packet 1G [mysql] no-auto-rehash socket /usr/local/mysql/mysql.sock [myisamchk] key_buffer_size 20M sort_buffer_size 20M read_buffer 2M write_buffer 2M [mysqlhotcopy] interactive-timeout mkdir -p /data/{mysqldata,mysqllog,mysqltmp} chown -R mysql.mysql /data/{mysqldata,mysqllog,mysqltmp}4、初始化mysql启动mysql都要初始化 如果报错可能是系统和mysql版本不兼容我这里是centos7最小安装# 初始化 如果报错可能是系统和mysql版本不兼容我这里是centos7最小安装 /usr/local/mysql/bin/mysqld --defaults-file/data/my.cnf --initialize --usermysql --basedir/usr/local/mysql --datadir/data/mysqldata # 启动 /usr/local/mysql/bin/mysqld_safe --defaults-file/data/my.cnf --pid-file/usr/local/mysql/mysqld.pid --datadir/data/mysqldata 5、查看密码都要执行如下命令查看日志找到图中类似位置为root密码 more /data/mysqllog/mysqld.log6、登录mysql都要执行如下命令并输入密码即可/usr/local/mysql/bin/mysql -uroot -p -S /usr/local/mysql/mysql.sock7、修改管理员密码都要alter user rootlocalhost identified by 你的管理员密码;三、Centos-8 安装 mysql 8安装MySQL的话会和MariaDB的文件冲突所以需要先卸载掉MariaDB。1. 安装准备查看是否安装mariadb查看是否安装mariadb rpm -qa|grep mariadb 卸载 rpm -e --nodeps 上一步的文件名 检查是否卸载完成 rpm -qa|grep mariadb查看是否安装libaio查看是否安装libaio rpm -qa|grep libaio 如果没有安装则执行 yum -y install libaio 有则不需要操作查看是否安装查看是否安装numactl rpm -qa|grep numactl 如果没有安装则执行 yum -y install numactl 有则不需要操作安装MySQL这里我安装在/usr/local目录下cd /usr/local/ wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar这里需要注意的是这个mysql版本的地址可能后面会失效那如何获取其他地址进行下载呢 输入地址https://www.mysql.com/ 选择DOWNLOADS - Community (GPL) Downloads - MySQL Community Server - Archives下载完成后拆分tar包 tar -xvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar 解压安装包 tar -xvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz 将解压后的文件夹重命名为mysql mv mysql-8.0.30-linux-glibc2.17-x86_64-minimal/ mysql 存储数据文件 cd mysql 在重命名后的mysql文件夹中创建data文件夹 mkdir data设置用户组并赋权groupadd mysql useradd -r -g mysql mysql chown -R mysql:mysql /usr/local/mysql/ chmod -R 755 /usr/local/mysql/初始化MySQLcd /usr/local/mysql/bin/ ./mysqld --initialize --usermysql --datadir/usr/local/mysql/data --basedir/usr/local/mysql 注意这里会打印一个初始密码需要记录下来后面用于登录:y27?RvdRy(启动MySQL/usr/local/mysql/support-files/mysql.server start 设置软连接 ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql ln -s /usr/local/mysql/mysql.sock /var/mysql.sock service mysql restart 如果提示 ln: failed to create symbolic link /etc/init.d/mysql: No such file or directory sudo mkdir -p /etc/init.d修改密码mysql -uroot -p 这里输入上一步的初始化随机密码 alter user rootlocalhost identified by 123456;开启远程连接use mysql; update user set user.Host% where user.Userroot; flush privileges; exit; 开放端口 firewall-cmd --zonepublic --add-port3306/tcp --permanent firewall-cmd --reload开启或关闭MySQL命令service mysql stop service mysql start service mysql restart修改sql_mode设置#修改sql_mode设置避免出现 ## Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column db.t_student.id which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_by ## 这个错误是由于MySQL的sql_mode设置为only_full_group_by导致的。在这种模式下当使用GROUP BY子句时SELECT列表中的列必须是聚合函数或在GROUP BY子句中列出的列。如果SELECT列表中的列不满足这个条件就会出现这个错误。 vim /etc/my.cnf ## 加入以下内容 [mysqld] sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION ## 重启MySQL即可 service mysql restart安装过程中遇到的问题## cannot open shared object file: No such file or directory ## mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory ## 安装缺失的包文件 yum install libncurses* -y开启mysqldump## 查看路径 which mysqldump ## 将mysqldump所在的路径添加到PATH环境变量中 export PATH$PATH:/usr/local/mysql/bin ## 使修改的PATH环境变量生效 source ~/.bashrc ## 验证mysqldump是否已经添加到系统路径中 mysqldump --version设置开机自启动cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --list