参考:hhttps://blog.csdn.net/qq_37598011/article/details/93489404
一、安装mysql
- linux服务器下载
浏览器地址:https://downloads.mysql.com/archives/community/
- linux wget
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
- 解压并移动
tar -xzvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz mv /opt/mysql-5.7.31-linux-glibc2.12-x86_64 /usr/local/mysql
二、权限问题
mkdir -p xx/y
mkdir -p xx/yy的好处就是一次可以创建多级文件夹,若xx文件夹不存在,则先创建xx文件夹,然后在xx文件夹下创建yy文件夹
- 建组和用户
groupadd mysql
useradd -r -g mysql mysql - 创建数据目录并赋予权限
mkdir -p /data/mysql chown mysql:mysql -R /data/mysql
三、配置文件
- 配置文件my.cnf(vim可以新建)
内容如下:vim /etc/my.cnf
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
四、初始化
- 指定datadir 和用户 bin目录下
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
2021-01-11T08:45:01.016629Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2021-01-11T08:45:02.074896Z 0 [Warning] InnoDB: New log files created, LSN=45790 2021-01-11T08:45:02.197677Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2021-01-11T08:45:02.258567Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 4b68eef9-53e9-11eb-9f98-00163e23ff3c. 2021-01-11T08:45:02.260205Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2021-01-11T08:45:02.682728Z 0 [Warning] CA certificate ca.pem is self signed. 2021-01-11T08:45:02.728072Z 1 [Note] A temporary password is generated for root@localhost: Wpd)Itk0r,m!
- 最后一行为密码–>Wpd)Itk0r,m!
如果没有密码显示,可以到 vim /data/mysql/mysql.err里查找
五、启动
-
创建软链/或者复制
ln -s /usr/local/mysql/bin/mysqlserver /etc/init.d/mysql
or
cp /usr/local/mysql/bin/mysqlserver /etc/init.d/mysql
注意:如果bin下面沒有mysqlserver 可在supportfiles中找mysql-server 然後执行上面的软连接
-
启动
/etc/init.d/mysql start
查看启动是否成功:ps -ef|grep mysql
-
登录 进入bin目录,将初始化时的密码复制粘贴,密文,不可见,回车确认即可
./mysql -u root -p
如果报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。
按照百度的方法都不成功,应该和系统版本有关,后来自己想到一个方法:yum install libncurses*,完美解决问题。
~~
4. 修改密码
再执行下面三步操作,然后重新登录【注意英文引号哦】
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
-
navicate客户端连接
连接不成功的原因
:-
阿里云服务器需要在安全组里打开3306端口
-
如果:mysql Navicat 出错:1130-host . is not allowed to connect to this MySql server
参考大佬文章:mysql远程连接报错: Host * is not allowed to connect to this MySQL server,解决方法
截屏 如下:
- 部分代码: 尤其要注意:如果执行不了,手动把引号打出来!!!
use mysql;
update user set host = ‘%’ where user =‘root’ and host =‘localhost’;
update user set host = ‘%’ where user =‘root’ and host =‘localhost’;
flush privileges;
-
-
如果操作完成后没有生效,可以ps找到进程号,kill后重启(在这里卡住一段时间)
-
其他问题:
在控制台中使用mysql的select语句不显示结果集,确定表中有数据
第二行的“->”说明你的输入不完全,还在等你输入呢。具体到你的问题,sql命令要用“;”结尾。