CentOS上安装MySql

首先需要下载rpm:

wget http://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm

这个地址怎么来的呢?

打开:http://dev.mysql.com/downloads/repo/yum/

使用

uname -r

可以查看当前系统的el版本,这里我选了第一个

选择直接下载

复制上面的地址就可以了。

下一步就是安装了:

rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
yum install mysql-community-server

时间比较长,耐心等待吧。

安装完成后使用已下命令启动:

service mysqld start

使用下面命令可以查看mysql状态:

service mysqld status

 然后需要修改root的密码,首先生成一个临时密码:

grep 'temporary password' /var/log/mysqld.log

使用上面的临时密码登录:

mysql -uroot -p

可以看到mysql的信息:

此时设置新密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

mysql8.0默认使用caching_sha2_password插件,修改密码使用下面命令

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';

这里密码有要求:至少一个大写字母,一个小写字母,一个数字,一个特殊符号,密码长度不小于8位。

 设置好密码后需要添加防火墙端口:

firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload 

此时在Windows上用工具进行连接,提示不允许连接,需要开启mysql的远程访问:

先查看mysql的用户表:

修改root的host:

update user set host = '%' where user = 'root'
service mysqld stop
service mysqld start

重新启动后从Windows可以连接了。

接下来从Asp.Net Core中测试:

连接mysql需要引用新的nuget包:

Install-Package MySql.Data -Pre

这时可以使用原生的ado.net来进行测试,这里直接使用dapper来测试,引入dapper包:

Install-Package Dapper -Pre

在数据库中添加User表:

DROP TABLE IF EXISTS `User`;
CREATE TABLE `User` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(255) DEFAULT NULL,
  `CreateTime` datetime DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
INSERT INTO `User` VALUES ('1', 'Jerry', '2016-11-14 09:15:49');
INSERT INTO `User` VALUES ('2', 'Tom', '2016-11-14 09:16:04');

在Models中新建类:

public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public DateTime CreateTime { get; set; }
    }

新添控制器:

public class UserController : Controller
    {
        // GET: /<controller>/
        public IActionResult Index()
        {
            return View();
        }
        private static MySql.Data.MySqlClient.MySqlConnection GetMySqlConnection(bool open = true,
            bool convertZeroDatetime = false, bool allowZeroDatetime = false)
        {
            string cs = "Server=10.255.17.82;Database=mydb;Uid=root;Pwd=yourpassword;";
            var csb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder(cs);
            csb.AllowZeroDateTime = allowZeroDatetime;
            csb.ConvertZeroDateTime = convertZeroDatetime;
            var conn = new MySql.Data.MySqlClient.MySqlConnection(csb.ConnectionString);
            if (open) conn.Open();
            return conn;
        }
        public IActionResult Add(string name)
        {
            int id = 0;
            using (var connection = GetMySqlConnection())
            {
                connection.Execute("insert into User(name,createtime) values(@name,now());", new { name = name });
                id = connection.QueryFirstOrDefault<int>("select id from User where name=@name;",new { name = name });
            }
            return Content(id.ToString());
        }
        public IActionResult Query(int id)
        {
            using (var connection = GetMySqlConnection())
            {
                var name= connection.QueryFirstOrDefault<string>("select name from User where id=@Id;", new { Id = id });
                return Content(name);
            }
        }
    }

在浏览器中输入:

http://localhost:XXXX/user/query/2

即可看到输出名字“Tom”了。

忘记密码可参考:http://www.jb51.net/article/77858.htm

原文地址:https://www.cnblogs.com/uptothesky/p/6061193.html